这是我想考虑的文件夹的结构:
/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 分钟)内更新的文件。我对这个策略有两个问题:
如果我运行第一个命令(更新 /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
/ 但这似乎不是处理该问题的可靠方法。我的第二个问题是 find 命令在 /mnt/network/ 上执行时非常慢所以我正在寻找一种方法来 ssh 到服务器,在其上执行 find 命令并将该命令的结果传输回我的本地计算机然后进行文件传输(无法从服务器订购此文件传输,因为我不希望服务器直接访问我的本地磁盘)。我根本不知道该怎么做......