hadoop集群分发命令脚本xsync和xcall

脚本的放置位置

1. /home/username/bin

mkdir bin/
cd bin/
touch xsync
vim xsync
...
  • 你可能会报这个错xsync: command not found
    解决: 用户bin目录下,sudo cp xsync bin/

2. /usr/local/bin

  • 直接放在这下面就不用cp了,全局调用

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 host in Master Slave1 Slave2; do
echo $pdir/$fname $user@$host:$pdir 
echo --------------- $host ----------------
rsync -rvl $pdir/$fname $user@$host:$pdir
done
  • 我被坑的地方 user=whoami : 我以为whoami要改成自己的用户名,唉小丑了,这其实是一句shell命令
  • for循环的host可根据自己的hostname进行更改

xcall

#!/bin/bash
params=$@

for host in Master Slave1 Slave2 ; do
    echo ============= $host $params =============
    ssh $host "$params"
done
  1. 接下来 找到你的java的位置,例如我的位置/usr/local/jdk1.8.0.152/bin/jps
  2. 随后执行 ln -s -f /usr/local/jdk1.8.0.152/bin/jps /usr/local/bin/jps,每台机器都要
  3. 给权限 chmod 777 xcall

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/RandyHan/article/details/128689424