问题描述
我最近用Ubuntu服务器设置了一台机器来托管游戏服务器。我为每台游戏服务器安装了一个备份插件,用于在机器上的特定文件夹中频繁备份游戏世界文件。我还建立了一个cron任务,每天晚上使用rsync和-a选项自动将这些备份复制到我的Dropbox文件夹中。
几个月后,我的Dropbox帐户达到了它的存储限制,并且我意识到我无法保留这么多的备份,所以我配置了游戏服务器备份插件而不保留这么多的备份,然后等了几天,看看它是否会按照计划每周执行的方式删除较早的备份。备份插件最终完成了它的工作并删除了较早的备份,所以我预计rsync cron任务会随后从我的Dropbox文件夹中删除较旧的备份以匹配源文件夹,但尚未这样做。所以我有几个问题:
默认情况下,rsync是否只将文件添加到已添加到源文件夹的目标文件夹,并更改源文件夹中已更改的文件,但不删除已从源文件夹中删除的文件?
如果是这样的话,做rsync的最好方法是什么?我想要目标文件夹完全反映源文件夹,这意味着删除已从源文件夹中删除的任何文件。
我看到rsync的手册页中列出了一些可能有用的技巧,但由于我不熟悉。
最佳解决办法
要删除目标中的文件,请将--delete选项添加到您的命令中。例如:
rsync -avh source/ dest/ --delete
次佳解决办法
在该命令中使用某些选项delete时,rsync命令不会删除任何文件。因此,如果源文件或文件夹中添加了任何文件或文件夹,它将同步到目标而不删除。
我建议您使用rsync从源文件进行备份,并使用find ... rm删除一段时间或文件大小的文件