2015/09/27

Linux Shell -- for 迴圈

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 
註解要去除,才會正式執行。
張貼留言