使用rsync进行无覆盖备份



我知道--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中,以修改为基础而不是以时间为基础来控制它们的版本。我就是这样处理我的数据库、点文件和个人笔记的。

相关内容

  • 没有找到相关文章

最新更新