echo “压缩旧备份文件…” >>“ F U L L _ L O G _ F I L E " e c h o " {FULL\_LOG\_FILE}" echo " FULL_LOG_FILE"echo"old_backup_file” | xargs -r -I {} sh -c ‘tar -czf {}.tar.gz -C {} -P .’
echo “压缩成功!” >>“${FULL_LOG_FILE}”
echo “删除旧备份文件…” >>“ F U L L _ L O G _ F I L E " e c h o " {FULL\_LOG\_FILE}" echo " FULL_LOG_FILE"echo"old_backup_file” | xargs -r -I {} rm -rf {}
echo “删除成功!” >>“${FULL_LOG_FILE}”
fi
echo “全量备份: D A T E _ B A C K U P _ D I R ,成功 " > > " {DATE\_BACKUP\_DIR},成功" >>" DATE_BACKUP_DIR,成功">>"{FULL_LOG_FILE}”
else
echo “全量备份: D A T E _ B A C K U P _ D I R ,失败 " > > " {DATE\_BACKUP\_DIR},失败" >>" DATE_BACKUP_DIR,失败">>"{FULL_LOG_FILE}”
fi
清理过期备份
find " B A C K U P _ D I R " − c t i m e + BACKUP\_DIR" -ctime + BACKUP_DIR"−ctime+RETENTION_PERIOD -exec rm -rf {} ;
set +x
命令解析
(time rsync -av --delete "$SOURCE_DIR" "$FULL_BACKUP_DIR") >"${FULL_LOG_FILE}" 2>&1
该命令用于使用
rsync
工具进行数据同步,并将同步过程中的输出信息(包括标准输出和错误输出)重定向到指定的日志文件中。命令详细解释如下:
time
: 这是一个Unix/Linux命令,用于测量并显示命令执行所花费的时间。rsync
: 是一个强大的文件同步工具,用于在本地或远程之间进行数据备份或同步。av
: 这是rsync的选项组合,其中:
a
:归档模式,相当于rlptgoD
的组合,保留源文件的所有属性(如权限、时间戳、软硬链接等)并递归处理目录。v
:详细输出模式,会让rsync运行时显示详细的同步信息。-delete
:这是一个rsync选项,表示在目标目录中删除那些源目录不存在的文件和目录,使得目标目录与源目录保持一致。"$SOURCE_DIR"
和"$FULL_BACKUP_DIR"
:分别为源目录和目标目录,它们是变量引用,实际执行时会替换为具体