1. 程式人生 > 實用技巧 >大資料叢集指令碼xcall和xsync

大資料叢集指令碼xcall和xsync

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之類的),非常方便。