我想了解如何将 rsync 任务分解为多个部分,以使更改日志的累积速度更快。情况是我们正在从一个存储平台迁移到一个新的存储平台。我们有一个大的平面目录,里面有 2.5 毫米的文件。 rsync 更改日志当前需要几天时间才能完成。我想将几个 txt 文件分解为每个 txt 文件大约 100k 个文件,然后对这些文本文件运行几个 rsync 任务,可能来自不同的服务器。
我的 shell 脚本游戏非常弱,有谁知道如何完成对 100k 文件执行“ls”并将其通过管道传输到 txt 文件,然后拾取下一组 100k 文件,依此类推,直到此中的所有文件目录显示在 25 个 txt 文件之一中。
或者如果有人有比 rsync 更好的主意,我很想听听。
答案1
要生成您正在寻找的 25 个文件...
$ find /lots/of/files | split -d -l 100000
这将生成每个包含 100,000 行的文件。您还可以做很多事情split
,因此请查看联机帮助页。它们-d
将按数字命名,而不是按字母顺序命名,如x01
, x02
, ...x25
从这里您可以循环遍历文件并运行 rsync。
for file in x*
do
# Run rsync command using $file as the change list
done
华泰