我有一个多个文件夹,每个文件夹大约有1500个文件。我有一种for循环,遍历每个文件夹,然后根据环境将文件发送到一个或4个远程主机。目前我正在使用rdist。我拥有的几乎每个文件都在每天进行更改,有时只是更改文件中的日期和时间。
我遇到了一些命令,如pscp、prsync以及GNU并行。我在多个主机上进行了pscp和rdist的实验,两者的结果相似。
因此,我的问题是,是否有可能将GNU与pscp、rdist或prsync并行?
发布于 2019-07-12 12:53:06
如果更改很少,rsync在同步2DID方面是非常出色的。它甚至可以使用-z压缩数据存储。
不幸的是,rsync非常依赖延迟,因此它通常无法填充一个大连接(例如,1 Gbps)。
这可以通过并行运行多个rsyncs来缓解。
来自man parallel:
示例:并行rsync是一个很好的工具,但有时它不会占用可用的带宽。在高速连接上复制几个大文件时,这通常是一个问题。下面将启动服务器页脚上的src中的每个大文件的rsync到服务器fooserver上的dir: cd src;find。-type f -size +100000 \并行-v ssh fooserver mkdir -p /dest-dir/{//};\ rsync -s -Havessh {} fooserver:/ end /{}创建的脏文件可能最终具有错误的权限,并且较小的文件不会被传输。要修复这些rsync,最后一次运行rsync :rsync -Havessh src/fooserver:/dest dir/
如果您的文件很小,您可以这样做:
find ... |
parallel -j10 -X rsync -zR -Ha ./{} fooserver:/dest-dir/调整-j10,直到找到最佳数目为止。
需要./{}才能使rsync -R生效,从而复制目录结构,而不仅仅是将所有文件复制到一个dir中。
https://unix.stackexchange.com/questions/482407
复制相似问题