xsync.sh分发脚本和命令执行脚本
可在服务器上分发集群文件
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname #3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir#4 获取当前用户名称
user=`whoami`#5 循环
for((host=1; host<4; host++)); doecho ------------------- cm0$host --------------rsync -av $pdir/$fname $user@cm0$host:$pdir
done
例子
[root@cm01 ~]# xcall.sh /data/cs.txt
集群命令执行脚本
#! /bin/bash
for i in cm01 cm02 cm03
doecho --------- $i ----------ssh $i "$*"
done
例子
[root@cm01 ~]# xcall.sh java -version
--------- cm01 ----------
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
--------- cm02 ----------
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
--------- cm03 ----------
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)