相关疑难解决方法(0)

使用 GNU Parallel 并行化 rsync

我一直在使用rsync脚本将一台主机上的数据与另一台主机上的数据同步。数据中有许多小文件,几乎占 1.2TB。

为了同步这些文件,我一直在使用以下rsync命令:

rsync -avzm --stats --human-readable --include-from proj.lst /data/projects REMOTEHOST:/data/
Run Code Online (Sandbox Code Playgroud)

proj.lst 的内容如下:

+ proj1
+ proj1/*
+ proj1/*/*
+ proj1/*/*/*.tar
+ proj1/*/*/*.pdf
+ proj2
+ proj2/*
+ proj2/*/*
+ proj2/*/*/*.tar
+ proj2/*/*/*.pdf
...
...
...
- *
Run Code Online (Sandbox Code Playgroud)

作为测试,我选择了其中的两个项目(8.5GB 数据)并执行了上面的命令。作为一个顺序过程,它需要 14 分 58 秒才能完成。因此,对于 1.2TB 的数据,需要几个小时。

如果我可以rsync并行处理多个进程(使用&,xargsparallel),它将节省我的时间。

我尝试使用以下命令parallel(在cding 到源目录之后),执行时间为 12 分 37 秒:

parallel --will-cite -j 5 rsync -avzm --stats --human-readable {} REMOTEHOST:/data/ ::: …
Run Code Online (Sandbox Code Playgroud)

linux rhel rsync gnu-parallel

27
推荐指数
4
解决办法
10万
查看次数

标签 统计

gnu-parallel ×1

linux ×1

rhel ×1

rsync ×1