1.声明全局变量
1.1 通过 echo $PATH 可以看到用户命令脚本所在的全局变量路径,root用户在
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/module/jdk1.8.0_212/bin:/opt/module/hadoop-3.1.3/bin:/opt/module/hadoop-3.1.3/sbin:/root/bin
/root/bin目录下
1.2 在/root/bin下创建文件 xsync
2.编写命令
#1.判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2. 遍历所有集群机器
for host in hadoop102 hadoop103 hadoop104
do
echo =========== $host =============
#3.遍历所有目录,挨个发送
for file in $@
do
#4.判断文件是否存在
if [ -e $file ]
then
#5.获取父目录
pdir=$(cd -P $(dirname $file); pwd)
#6.获取当前文件的名称
fname=$(basename $file)
ssh $host "mkdir -p $pdir"
rsync -av $pdir/$fname $host:$pdir
else
echo $file does not exists!
fi
done
done
3.其他操作
修改执行权限
chmod +x xsync
复制到bin目录
cp xsync /bin/
4.使用
xsync /etc/profile.d/my_env.sh