我知道--ignore-existing
选项,不知道是否有什么不同。
我的情况是:我有一个有大量用户上传图片的web服务器。现在大约是2TB。通常这些文件根本不需要修改。我使用rsync并将它们备份到其他服务器。
但是如果某个文件坏了怎么办?假设,文件的一半消失了。它将被复制到备份并覆盖之前的正确文件,因此备份也会被破坏。
我可以用--ignore-existing
。但是,如果某些文件仍然被更改了怎么办(这种情况很少发生,但可能发生)。有了这个选项,备份将不会有这个新文件。
我想要备份一个文件的所有版本,如果它改变了。这可能吗?也就是说:如果rsync定义该文件已经存在,它将现有的旧文件移动到某些../previous-TIMESTAMP/oldFileHere
,然后将新文件放在旧文件的位置。
有办法做到这一点吗?
—backup—suffix=
如果你不想使用rsnapshot,你可以使用带有如下后缀的目标文件:
rsync --backup --suffix=`date +'.%F_%H-%M'` ~/life_story.txt /media/myusername/backupdrive/life_story.txt
注意:
- 副本将是"智能的"-如果源和目标是相同的,不会生成新的带时间戳的备份(这是好的)
- 有一个使用子目录而不是文件后缀(
--backup-dir
)的选项,但我自己没有尝试过。
对不起,这是错误的答案,请参阅我的其他答案
我认为你想用rsnapshot
而不是rsync
。它是专门为恢复旧版本的文件而构建的。它提供每小时、每周和每月的~/.snapshots
目录下的文件版本控制。
如果您的文件很小,您甚至可以考虑将它们放在git
repo中,以修改为基础而不是以时间为基础来控制它们的版本。我就是这样处理我的数据库、点文件和个人笔记的。