トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Linux:whileループでsshを使う場合の注意点

Last-modified: 2013-08-24 (土) 02:14:21 (3898d)
Top / Linux:whileループでsshを使う場合の注意点

Linux:whileループでsshを使う場合の注意点

whileでループさせる中にsshでリモートホストでコマンドを実行したい場合には、sshのオプションで「-n」を指定する必要があります。

例えば、以下の通りです。

#!/bin/sh 

while read line 
do 
    echo $line 
    ssh root@${line} 'hostname' 
done <<EOF! 
hosta 
hostb 
hostc 
hostd 
EOF! 

このままやると、最初の1行(hosta)だけ実行されて終わります。

して、次のように「ssh -n」とするとちゃんと全部実行されます。

#!/bin/sh 

while read line 
do 
    echo $line 
    ssh -n root@${line} 'hostname' 
done <<EOF! 
hosta 
hostb 
hostc 
hostd 
EOF! 

なぜ、-nが有効かって?、、、

そのうち調べるかもしれませんw