总结
仅通过 rsync 保留最新的 10 个备份文件夹
我正在使用 rsync 将我的文件备份到远程服务器或同一台机器上的另一个目录,例如:
SRC="${1}"
DEST="${2}"
PREFIX="$( date '+%Y-%m-%d__%H_%M_%S' )"
rsync --archive \
--progress \
--compress \
--delete \
--delete-excluded \
--link-dest=../current \
--delay-updates \
--partial-dir=".partial-${PREFIX}" \
"${SRC}" "${DEST}/${PREFIX}"
经过几次备份后,我将获得以下目录结构
$ ls ${DEST}/
2017-02-26__16_36_19/
2017-02-26__16_41_23/
2017-02-26__16_41_24/
2017-02-26__16_41_25/
current -> 2017-02-26__16_41_25/
current
始终指向已完成的最新备份。
现在,由于我不知道它$DEST
是本地文件夹还是远程服务器地址,我想rsync
始终删除其中不是最新 10 个的所有其他文件夹。$DEST
所以基本上我只想保留最新的 10 个备份文件夹并删除其余的。
即使我不知道该rsync
脚本是否针对同一台计算机上的目录或 ssh 服务器地址触发,这是否可能?
答案1
rsync
没有这样的选项(“删除所有早于...的目录”),您必须使用ssh
自定义脚本来实现相同的效果。
更好的是,你可以使用rsnapshot
管理备份轮换和保留。