在 rsync 上使用哪些标志来实现完全复制?

在 rsync 上使用哪些标志来实现完全复制?

你好,因为我搜索过 stack overflow 但没有找到相关信息,所以我需要再次询问具体要求。我有一个大约有 4TB 数据的旧存储,我想将其与基于 ZFS(TrueNAS 核心)的新存储同步。旧存储上的数据经常更改,创建新数据,其中一些数据被删除。由于我无法使用 ZFS 从旧存储发送/接收(这将是最佳选择,因为我将逐块复制并进行快照),我需要了解 rsync 的可能性。

现在 rsync 有几个标志,我发现的大多数示例都使用

rsync-avr /源/目标

如果我能按时归档并归档那些新创建的文件,这将是一件好事,但由于旧数据有时会被删除,并且一些当前所在的文件正在被程序更新(意味着内容和时间戳被更改),我需要看到一个选项,其中包括归档新创建的文件,删除新 ZFS 存储上的旧文件(这些旧文件也会在旧的“源”存储上被删除),以及将修改后的文件从源更新到目标存储。

阅读手动 rsync 命令应该是这样的:

rsync -avu --delete /源/目标 --progress

但由于这是实时数据,我需要 100% 确定,而且我不能简单地测试和“尝试”这一点……

有没有人真正擅长使用 rsync 来检查并给我建议这个命令应该是什么样子,或者提出建议...

PS 这个 rsync 应该在 cronjob 中每天运行一次,包含所有附加、删除和更新选项...

先感谢您。

答案1

我使用 rsync 的最佳实践。几年来,我一直在 RHEL6、RHEL7 和 Ubuntu 上使用它来同步文件服务器和支付交易系统的目录。

注意:在目标目录中,源目录中不再存在的所有内容都会被删除。源目录中不会发生任何更改。源目录的尾部斜杠很重要。我假设本地和远程都使用 root 用户。

具有两个本地文件系统:

rsync -S -vrltH -pgo --stats -D --numeric-ids --delete --partial /path/to/source/dir/ /path/to/destination/dir

使用本地源和远程目标(通过 ssh):

rsync -S -vrltH -pgo --stats -D --numeric-ids --delete --partial /path/to/source/dir/ root@server:/path/to/destination/dir

有关详细信息,请参阅:man rsync

这些选项源自用于创建备份的脚本框架,称为迪尔维什

相关内容