rsync批量复制脚本

#!/bin/bash
pcount=$#
if((pcount==0));then
echo no args;
exit;
fi

p1=$1
fname=$(basename $p1)
echo fname=$fname

pdir=$(cd -P $(dirname $p1); pwd)
echo pdir=$pdir

user=$(whoami)
echo user=$user
for((host=124;host<126;host++));do
echo -------------------------hadoop$host --------------
rsync -av $pdir/$fname $user@hadoop$host:$pdir
done

注意点:

1.shell中将一个命令的结果赋给一个变量有两种方式:

    (1)$()方式:fname=$(basename $p1),推荐使用。

    (2)反引号方式:`ls -l`,不推荐使用。注意:是键盘左上角的反引号,不是右下角的引号!!!并且可能因为linux版本问题出现执行结果不同【1】。

2.for循环条件若是机器名不规则,可以这样实现:

for host in {master,slaver1,slaver2}; do
        #echo $pdir/$fname $user@$host:$pdir
        echo --------------- $host ----------------
        rsync -av $pdir/$fname $user@$host:$pdir
done

 

【1】https://www.cnblogs.com/skyflask/p/7742208.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值