我正在使用 scp 使用 GNU 并行复制文件和我的下面的 shell 脚本,它工作正常。
我不确定如何rsync
在scp
下面的 shell 脚本中使用。我想看看在传输速度方面是否rsync
会有更好的性能。scp
以下是我的问题描述 -
当我在. machineB
_machineC
machineA
machineA
如果文件不在那里,machineB
那么它肯定应该在那里,machineC
所以我会尝试先复制文件machineB
,如果文件不在那里,machineB
那么我会尝试从machineC
.
我正在使用 GNU Parallel 库并行复制文件,它工作正常。目前,我正在为 PRIMARY 和 SECONDARY 并行复制五个文件。
下面是我的shell脚本 -
#!/bin/bash
export PRIMARY=/test01/primary
export SECONDARY=/test02/secondary
readonly FILERS_LOCATION=(machineB machineC)
export FILERS_LOCATION_1=${FILERS_LOCATION[0]}
export FILERS_LOCATION_2=${FILERS_LOCATION[1]}
PRIMARY_PARTITION=(550 274 2 546 278) # this will have more file numbers
SECONDARY_PARTITION=(1643 1103 1372 1096 1369 1568) # this will have more file numbers
export dir3=/testing/snapshot/20140103
do_Copy() {
el=$1
PRIMSEC=$2
scp david@$FILERS_LOCATION_1:$dir3/new_weekly_2014_"$el"_200003_5.data $PRIMSEC/. || scp david@$FILERS_LOCATION_2:$dir3/new_weekly_2014_"$el"_200003_5.data $PRIMSEC/.
}
export -f do_Copy
parallel --retries 10 -j 5 do_Copy {} $PRIMARY ::: "${PRIMARY_PARTITION[@]}" &
parallel --retries 10 -j 5 do_Copy {} $SECONDARY ::: "${SECONDARY_PARTITION[@]}" &
wait
echo "All files copied."
有什么方法可以替换我上面的scp
命令,rsync
但我仍然想同时复制 5 个PRIMARY
文件SECONDARY
?