如何防止损坏的文件被 rsync 到远程服务器并且目标上的良好/未损坏的副本被删除?

如何防止损坏的文件被 rsync 到远程服务器并且目标上的良好/未损坏的副本被删除?

我正在使用这个命令:

rsync -avzh --delete --progress source folder remote folder

我的源文件夹包含许多视频*.mp4文件。

我希望所有视频能够频繁地同步到远程服务器中的目标文件夹。

有一个名为 的视频sample.mp4已成功 rsynced。

但是,sample.mp4文件在下一次 rsync 之前以某种方式损坏了,而我不知道。

现在,当执行 rsync 命令时,我猜会发生以下情况:

  • 首先,sample.mp4远程服务器中先前复制的内容将被删除。
  • 然后,源文件夹中的损坏文件sample.mp4将被视为新文件并同步到远程服务器。
  • 因此我将有一个损坏的文件但我仍然认为它是将来恢复的完美副本。

我该怎么做才能防止这样的事情发生?

答案1

如果您使用rsyncwith --backup(可能还有--suffix--backup-dir),它将对现有文件进行备份。

这还取决于您如何rsync检测源上已更改的文件。

  • 如果rsync使用默认的“快速检查”(大小和时间),则损坏的文件可能不会被复制,因为损坏可能不会改变大小或日期(这当然取决于导致损坏的原因),在这种情况下,您的备份副本将保持正确。
  • 如果rsync使用--checksum则文件将被复制(但您将获得备份版本)

如果您通常不修改视频文件,--backup则使用然后立即检查目标位置的备份文件将是一个很好的方法,可以 1)警告损坏的文件和 2)在下一次备份破坏之前恢复正确的版本。

相关内容