forループとSSHを使用して複数のサーバーにログインするスクリプトを作成するには?

forループとSSHを使用して複数のサーバーにログインするスクリプトを作成するには?

forループとSSHを使用して複数のサーバーにログインするスクリプトを作成したいと思います。 awkコマンドを使用してログインした後、7番目の列を出力として印刷したいと思います。

以下のスクリプトを試しましたが、解決できませんでした。

でIPリストを作成しました/tmp/list

for i in `cat /tmp/list`
do
echo $i
echo "***********"
ssh $i |grep tsm |awk -F : '{print $7, "\t"}'
echo
done

答え1

パフパフこれは簡単になりますが、ssh簡単なユースケースにも適しています。

上記はうまくいくかもしれませんが、サーバーがコマンドを実行し、ログイン時にシャットダウンするように設定されている場合にのみ(これはほとんど発生しません)、次の意味になります。

ssh $i <command> | grep tsm | ...

ログインバナーを確認する必要がある場合は、対話型シェルを起動するのではなく、sshからすぐに返すtsmコマンドを試してください。exit

ssh $i "exit" | grep tsm | ...

関連情報