我使用rsync备份远程计算机上的大型硬盘驱动器。默认情况下,当远程计算机上的文件在本地计算机上不再存在时,rsync不会删除它们。这是有用的,因为它使恢复成为可能,例如,如果我想恢复一个错误删除的文件,这也意味着我不需要担心rsync‘在一个空的目录(如果硬盘驱动器死了或者没有被挂载)。问题是它占用远程主机上大量的磁盘空间,而且如果我需要恢复备份,它将被这些已删除的文件污染。
另一种选择是rsync --delete,但这意味着在我第一次运行备份时,已删除的文件也将被删除,如果挂载点变为空,那么我也有删除备份的风险。
理想情况下,我希望有一种方法告诉rsync像--delete那样做,但是它可以将它们移动到不同的备份层次结构中,而不是删除文件。这样,我仍然可以恢复这些文件,如果我想,我可以清理第二个层次结构中的较大文件,以节省空间,而主备份层次结构将是我的驱动器的一个干净的备份。
(我没有足够的磁盘空间来维护远程主机上的两个完整备份。此外,我知道增量备份工具(如博格备份 )的存在,但我希望有一种解决方案,它不依赖具有自定义存储格式的重型工具。对于使用硬链接的解决方案,我也有点谨慎,但如果这是最好的选择,我也不介意。)
发布于 2017-02-14 21:29:41
你可以使用-备份
-b,-使用此选项进行备份,当每个文件被传输或删除时,将重命名先前存在的目标文件。
结合-备份-dir
-备份-DIR=DIR与--备份选项相结合,这将告诉rsync将所有备份存储在接收方指定的目录中。这可以用于增量备份。
将任何修改和删除的文件的副本保存在接收方的单独目录中。
如果只希望将已删除的文件保存在备份中,则可以在同步后单独清除更新的文件(例如,像这样)。
https://unix.stackexchange.com/questions/345036
复制相似问题