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"