rsync进行备份,但不想擦除(不擦除)驱动器

我不知道如何解释这个问题。 说我使用rsync备份驱动器a到驱动器b。 驱动器-a失败,当rsyncclosures时,所有数据都会丢失,看到驱动器-a已经被擦除,因此它将擦除驱动器-b。

我想写一个rsync脚本,所以这不会发生。 这实际上发生在我认识的人身上,所以这是可能的。

哦,你可以设置rsync不删除多余的文件。 默认情况下不会。 所以,如果所有的文件都从驱动器a,它们应该没问题。

https://unix.stackexchange.com/questions/5451/delete-extraneous-files-from-dest-dir-via-rsync

你可以尝试使用rsnapshot 。 这使用rsync来创build基于硬链接的备份。 在服务器上,可以访问多个备份而不浪费空间。 因此,当驱动器A被擦除时,只有最新的备份才会将数据“擦除”,但旧的快照仍将保存数据。

另一件事是直接使用rsync选项--backup--backup-dir

-b, – 备份

使用此选项,当传输或删除每个文件时,先前存在的目标文件将被重命名。 您可以使用–backup-dir和–suffix选项来控制备份文件的位置以及后缀(如果有)。

请注意,如果不指定–backup-dir,(1)将隐含–omit-dir-times选项,(2)如果–delete也有效(不带–delete-excluded) ,rsync会将备份后缀的lqprotectrq过滤规则添加到所有现有排除的末尾(例如-f“P〜 ”)。 这将防止以前备份的文件被删除。 请注意,如果您提供了自己的过滤规则,则可能需要手动在列表中较高的位置插入自己的排除/保护规则,以使其具有足够高的优先级以生效(例如,如果您的规则指定了尾随包含/排除oq cq,自动添加的规则永远不会到达)。

–backup-DIR = DIR

结合–backup选项,这会告诉rsync将所有备份存储在接收端的指定目录中。 这可以用于增量备份。 您还可以使用–suffix选项指定备份后缀(否则备份在指定目录中的文件将保留其原始文件名)。

在你描述的情况下(失败的源驱动器),rsync 不会删除任何东西,因为:

  1. 默认情况下, rsync不会删除任何东西,直到你传递“–delete”选项
  2. 即使将“–delete”选项传递给它, 如果源磁盘无法访问rsync也不会删除目标文件 。 从手册页:

如果发送方检测到任何I / O错误,则删除目标上的任何文件将被自动禁用。 这是为了防止发送端的临时文件系统故障(例如NFS错误)导致目标文件的大量删除。 你可以用–ignore-errors选项覆盖它。

在源失败之后,唯一能够结束一个被擦除目标的方法是:

  • 先进的rsync选项mangle(请参阅手册页)
  • 有一个源代码失败,performance出一个似乎一致但空的文件系统(这是非常罕见的可能性)

无论如何,我第二个build议使用rsnapshot +硬链接。 我使用这个设置进行备份,非常方便。