大資料叢集指令碼xcall和xsync
阿新 • • 發佈:2020-06-29
1、命令分發同步指令碼:xcall
#!/bin/bash params=$@ for((i=102 ;i < 105 ;i=$i+1 ));do echo ==========hadoop$i $params========== ssh hadoop$i "source /etc/profile;$params" done
將寫好的指令碼附許可權chmod 777 xcall
並放到 /bin/目錄下即可
2、同步複製指令碼: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=103; host<105; host++)); do echo ------------------- hadoop$host -------------- rsync -av $pdir/$fname $user@hadoop$host:$pdir done
方法同上。該指令碼以後只需要在一臺主機上安裝配置軟體,即可同步分發到其他多臺機器上,有的只需做稍微修改(比如ip,id之類的),非常方便。