我运行一个带有插件的游戏服务器,该插件将每小时的服务器备份放在 /backups 中。1 天后,插件每天保存 2 个备份并删除其余备份。我想将此备份目录同步到远程服务器,但只同步 2 天以上的文件,这样它就不会同步最终会在一天结束时被删除的文件。
为此我运行了这个:
find /path/backups/ -type f -mtime 2 -exec rsync -vPhd -e "ssh -p 512" /path/backups/ --delete --ignore-existing me@host:/remote/path/server-backups/ \;
这会导致 /backups/ 中的所有文件都同步到 /server-backups/,而不是超过 2 天的文件。我该如何解决这个问题?谢谢帮助!
答案1
Natim 的说法是正确的,需要使用 {} 将文件名传递给 rsync。无需切换到 scp。只需将 {} 与 rsync 一起使用,如下所示:
find /path/backups/ -type f -mtime +2 -exec rsync -vPhd -e "ssh -p 512" {} --delete --ignore-existing me@host:/remote/path/server-backups/ \;
注意:我也改变了
-mtime 2
到
-mtime +2
正如您所说,文件已超过 2 天。您可能需要根据您的具体需求进行调整。