我正在使用这个命令:
rsync -avzh --delete --progress source folder remote folder
我的源文件夹包含许多视频*.mp4
文件。
我希望所有视频能够频繁地同步到远程服务器中的目标文件夹。
有一个名为 的视频sample.mp4
已成功 rsynced。
但是,sample.mp4
文件在下一次 rsync 之前以某种方式损坏了,而我不知道。
现在,当执行 rsync 命令时,我猜会发生以下情况:
- 首先,
sample.mp4
远程服务器中先前复制的内容将被删除。 - 然后,源文件夹中的损坏文件
sample.mp4
将被视为新文件并同步到远程服务器。 - 因此我将有一个损坏的文件但我仍然认为它是将来恢复的完美副本。
我该怎么做才能防止这样的事情发生?
答案1
如果您使用rsync
with --backup
(可能还有--suffix
或--backup-dir
),它将对现有文件进行备份。
这还取决于您如何rsync
检测源上已更改的文件。
- 如果
rsync
使用默认的“快速检查”(大小和时间),则损坏的文件可能不会被复制,因为损坏可能不会改变大小或日期(这当然取决于导致损坏的原因),在这种情况下,您的备份副本将保持正确。 - 如果
rsync
使用--checksum
则文件将被复制(但您将获得备份版本)
如果您通常不修改视频文件,--backup
则使用然后立即检查目标位置的备份文件将是一个很好的方法,可以 1)警告损坏的文件和 2)在下一次备份破坏之前恢复正确的版本。