1

我正在尝试通过 ssh 并行运行 rsync 以在两台机器之间传输文件以进行评估。我想看看与单个 rsync 进程相比,我能获得多快。

我尝试了这两种解决方案: https ://wiki.ncsa.illinois.edu/display/~wglick/Parallel+Rsync但没有取得很大成功。 https://gist.github.com/rcoup/5358786(我无法让它工作)

基于第一个链接,我运行如下命令:

ssh HOST "mkdir -p ~/destdir/basefolder"
cd ./basefolder; ls | xargs -n1 -P 4 -I% rsync -arvuz -e ssh % HOST:~/destdir/basefolder/.

我得到了传输的文件,但它似乎不能很好地工作......在这种情况下,它将为基本文件夹中的每个文件和文件夹运行一个进程,但是当它找到一个文件夹时,它将传输其中的所有内容文件夹仅使用 1 个进程。

我尝试使用 find -type f,但我遇到了问题,因为我失去了文件层次结构。

有谁有一些方法可以做我想做的事?(在 ssh 上并行使用 rsync,同时保持文件和文件夹层次结构)。

4

1 回答 1

2

由于您将问题标记为“gnu-parallel”,因此显而易见的是请您参考http://www.gnu.org/software/parallel/man.html#EXAMPLE:-Parallelizing-rsync

cd src-dir; find . -type f -size +100000 | parallel -v ssh fooserver mkdir -p /dest-dir/{//}\;rsync -Havessh {} fooserver:/dest-dir/{}
于 2014-03-17T08:26:23.150 回答