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 | ...