linux 分发同步脚本与分发命令脚本

同步脚本,在第5步要拼接自己配置的主机名

 1 #!/bin/bash
 2 #1 获取输入参数个数,如果没有参数,直接退出
 3 pcount=$#
 4 if((pcount==0)); then
 5 echo no args;
 6 exit;
 7 fi
 8 
 9 #2 获取文件名称
10 p1=$1
11 fname=$(basename $p1)
12 echo fname=$fname
13 
14 #3 获取上级目录到绝对路径
15 pdir=$(cd -P $(dirname $p1); pwd)
16 echo pdir=$pdir
17 
18 #4 获取当前用户名称
19 user=$(whoami)
20 
21 #5 循环
22 for((host=3; host<5; host++)); do
23         #echo $pdir/$fname $user@hadoop${00}$host:$pdir
24         echo --------------- hadoop00$host ----------------
25        rsync -rvl $pdir/$fname $user@hadoop00$host:$pdir
26 done

命令脚本(注意修改拼接的主机名)

 1 #!/bin/bash
 2 pcount=$#
 3 if((pcount==0));then
 4         echo no args;
 5         exit;
 6 fi
 7 
 8 #echo -------------localhost----------
 9 $@
10 for((host=3; host<=4; host++)); do
11         echo ----------hadoop00$host---------
12         ssh hadoop00$host $@
13 done

把脚本保存在/usr/local/bin下就可以全局范围执行了

猜你喜欢

转载自www.cnblogs.com/tele-share/p/9502569.html