xcall.sh和xsync.sh
前题
1) 脚本放入/usr/local/bin目录下
2) 本机可以正常运行jps命令
这个问题是因为在脚本目录下需要放置jps的软链接,命令如下:
ln -s /usr/local/jdk1.8.0_291/bin/jps /usr/local/bin/jps
3) 做好免密登录
一、xcall.sh
$# 参数个数,先校验个数
$@ 所有参数
#!/bin/bash
pcount=$#
if((pcount==0));then
echo no args;
exit;
fi
echo -------------************----------
for((host=1; host<=3; host++)); do
echo ----------s20$host---------
ssh s20$host $@
done
二、xsync.sh
代码如下(示例):
#!/bin/sh
# 获取输入参数个数,如果没有参数,直接退出
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`
for((host=2; host<=3; host++)); do
echo $pdir/$fname $user@s20$host:$pdir
echo ==================slave$host==================
rsync -rvl $pdir/$fname $user@s20$host:$pdir
done