rsync、find 和其他用于同步大量数据的有用命令

rsync、find 和其他用于同步大量数据的有用命令

这是我想考虑的文件夹的结构:

/mnt/network/

是我的网络驱动器

/local/

是我的本地文件夹。我想要的是同步这两个文件夹的内容(代表大约 350 GB 的数据)。我知道两种流行的策略:同步一致。看起来齐奏可能会很慢对于如此大量的数据,所以我只考虑rsync。

因为我想同步这两个文件夹,所以我运行两个命令。一份来自 /local/ :

rsync -avzut --progress --files-from=<(find . -mmin -1440 -type f) /local/. /mnt/network/

和一个来自 /mnt/network/ 的:

rsync -avzut --progress --files-from=<(find . -mmin -1440 -type f) /mnt/network/. /local/

使用这些命令,我​​将 rsync 的启动限制为过去 24 小时(= 1440 分钟)内更新的文件。我对这个策略有两个问题:

  1. 如果我运行第一个命令(更新 /mnt/network/ 的内容)两次,则较新的文件复制两次:(a)第一次执行命令时 - 这就是我想要的 - 而且(b)第二次执行命令时。我相信 (b) 是不正常的,因为在这个阶段 /local/ 和 /mnt/network/ 上的文件是相同的(我检查了大小和时间戳)。这可能与 rsync 和 find 的组合有关吗?我考虑添加选项 --size-only: rsync -avzut --size-only --progress --files-from=<(find . -mmin -1440 -type f) /local/. /mnt/network/ 但这似乎不是处理该问题的可靠方法。

  2. 我的第二个问题是 find 命令在 /mnt/network/ 上执行时非常慢所以我正在寻找一种方法来 ssh 到服务器,在其上执行 find 命令并将该命令的结果传输回我的本地计算机然后进行文件传输(无法从服务器订购此文件传输,因为我不希望服务器直接访问我的本地磁盘)。我根本不知道该怎么做......

相关内容