Linux Shell -- for 迴圈
Linux shell 可以使用 for 迴圈傳遞固定的值內容給迴圈內部變數
基本格式為:
for 變數 in 值1 值2 值3
do
echo 變數
done
執行結果會是:
值1 值2 值3
# 範例如下:複製 dl 目錄到每一台主機,主機已經先設定 ssh key 認證
[hadoop@namenode happ]$ cat sync_dl2_all.sh
#!/bin/bash
ACTION=$1
if [ "$ACTION" == "all" ]; then
for N in 1 2 3
do
echo "send to datanode${N}"
RUN="rsync -av --delete-after /home/hadoop/happ/dl hadoop@datanode${N}:/home/hadoop/"
echo $RUN
#echo $RUN | sh
done
exit 0
else
echo "usage:$0 all"
exit 1
fi
[hadoop@namenode happ]$ ./sync_dl2_all.sh
usage:./sync_dl2_all.sh all
[hadoop@namenode happ]$ ./sync_dl2_all.sh all
send to datanode1
rsync -av --delete-after /home/hadoop/happ/dl hadoop@datanode1:/home/hadoop/
send to datanode2
rsync -av --delete-after /home/hadoop/happ/dl hadoop@datanode2:/home/hadoop/
send to datanode3
rsync -av --delete-after /home/hadoop/happ/dl hadoop@datanode3:/home/hadoop/
#echo $RUN | sh
註解要去除,才會正式執行。
沒有留言:
張貼留言