hadoop_批量命令脚本&同步文件脚本
1、xcall.sh 批量命令脚本,例:xcall.sh jps ,查看hadoop101~ hadoop104的jps进程
注意:在执行命令的时候,若是提示没有这个命令,但是在本机又可以执行,记得在/usr/local/bin 下面创建一个符号连接指向那个命令所在目录。
#!/bin/bash #命令参数 params=$@ for((i=101;i<105;i=$i+1))do echo ====== hadoop$i $params ====== ssh hadoop$i $params done
2、xsync.sh 集群同步文件,分发文件脚本,例:xsync.sh /usr/loacl/test.sh,在hadoop101~hadoop104上的/usr/local/下同步分发test.sh
#!/bin/bash path=$1 #判断是否有参数,若无参数 if [ $# -lt 1 ] then #提示无路径,没有参数 echo "no path" #退出 exit fi #得到当前文件名 filename=`basename $path` #echo $filename #得到文件路径,为防止用的相对路径,所以先cd 当前文件路径,然后pwd -P 获得绝对路径 dir=`dirname $path` cd $dir fullpath=`pwd -P` #echo $fullpath #得到当前用户 username=`whoami` #i可以当作主机名的后缀 for ((i=101;i<105;i=$i+1)) do #进行分发命令,后面的主机名根据自己改 rsync -rvl $fullpath/$filename $username@hadoop$i:$fullpath echo "--hadoop$i........SUCCESS" done echo "--SUCCESS"