Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – 如何在我的下面的shell脚本中使用rsync而不是scp来复制文件?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我正在使用scp并行使用GNU并行复制文件与我的下面的 sHell脚本,它工作正常. 我不知道如何在下面的sHell脚本中使用rsync代替scp.我试图看看rsync与传输速度方面的scp相比是否会有更好的性能. 以下是我的问题描述 – 当我在machineA上运行我的下面的sHell脚本时,我正在将文件从machineB和machineC复制到machineA中. 如果文件不在machineB
我正在使用scp并行使用GNU并行复制文件与我的下面的 shell脚本,它工作正常.

我不知道如何在下面的sHell脚本中使用rsync代替scp.我试图看看rsync与传输速度方面的scp相比是否会有更好的性能.

以下是我的问题描述 –

当我在machineA上运行我的下面的sHell脚本时,我正在将文件从machineB和machineC复制到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."

有没有办法用rsync替换我的上面的scp命令,但是我还想同时为PRIMary和SECONDARY并行复制5个文件

@H_696_38@解决方法
rsync旨在有效地同步文件夹和文件的两个层次结构.

然它可以用来传输单个文件,但是除非你已经在每一端都有一个版本的文件,它们之间的差别很小,否则它对你的使用非常有帮助.在层次结构中的各个文件上并行运行多个rsync实例会破坏该工具的用途.

然三元组是正确的,你的任务是I / O绑定而不是cpu绑定,因此在典型的情况下并行化任务无助于你使用rsync还是scp,有一种情况是并行化网络传输可以提供帮助:如果发件人限制请求.在这种情况下,为许多不同的文件夹中的每一个运行rsync实例可能有一些价值,但它会使您的代码复杂化,并且您必须分析这两个解决方案以发现您是否真正获得了任何好处.

简而言之:只运行一个rsync实例;你从另一种方法中获得的性能提升不太可能是值得的.

大佬总结

以上是大佬教程为你收集整理的linux – 如何在我的下面的shell脚本中使用rsync而不是scp来复制文件?全部内容,希望文章能够帮你解决linux – 如何在我的下面的shell脚本中使用rsync而不是scp来复制文件?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。