在正在使用的驱动器上使用 Rsync 是否安全?

在正在使用的驱动器上使用 Rsync 是否安全?

我正在设置一个夜间 cron 作业来运行 rsync(使用 --delete)来将网络共享与其各自的备份卷同步。

如果在 rsync 进程运行期间源驱动器上有很多活动,我会遇到任何麻烦吗?

例如,可能有一个长时间运行的复制命令正在传输数 GB 的数据,并且与 rsync cron 作业重叠。会不会存在并发问题?

答案1

不幸的是,没有直接的方法让 rsync 检查文件是否正在被写入,即使有,也没有任何明显的方法来处理它。Rsync 只会同步从文件中读取字节,并且只会看到读取时的数据。最好的选择是找到某种方法将备份脚本与正在写入文件的任何应用程序同步。此主题在 rsync 邮件列表中了解更多详细信息。

另一种选择是,如果你使用 LVM,你可以拍摄快照卷并从中 rsync。但这并不能真正解决 rsync 不完整或写入一半的文件的问题。

不管怎样,rsync 都会完成它的工作,所以如果您不担心备份是否与写入的每个文件一致,那么使用 rsync 就足够了。也就是说,如果您只担心这些,那么 rsync 不会崩溃或出错或类似情况。

编辑:(抱歉,我做了这么多编辑 :P)我刚刚想到了另一件事。您可以在一个小时左右后设置第二个 rsync cronjob,并使用标志--existing来追赶任何正在写入的文件,而不拾取任何正在写入的新文件。这将同步自第一次 rsync 以来的任何“正在进行的”更改,而不会在第二次运行时遇到同样的问题。

相关内容