使用的前提条件
Linux中的xcall、xsync脚本等操作-CSDN博客
yum install -y rsync
使用
#分发
cd /home/software
xsync zookeeper/
xsync /etc/profile.d/myenv.sh
#执行
[root@node01 sbin]# xcall cat /home/software/zookeeper/data/myid
--------- node01 ----------
1
--------- node02 ----------
2
--------- node03 ----------
3
xcall与xsync截图
xcall
ssh $i "source /etc/profile ; $*"
:这行使用 SSH 远程连接到 $i
指定的节点,然后执行 source /etc/profile
命令以确保加载系统环境配置(通常是为了确保环境变量正确设置),接着执行 $*
。$*
表示脚本执行时传递给它的所有参数。这意味着脚本将会把参数当作要在远程节点上执行的命令。
#! /bin/bash
for i in node01 node02 node03
do
echo --------- $i ----------
ssh $i "source /etc/profile ; $*"
done
xsync
#!/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 i in node02 node03
do
echo ------------------- $i --------------
echo $pdir/$fname $user@$i:$pdir
scp -r $pdir/$fname $user@$i:$pdir
done