ヒアドキュメントと ssh で Unix サーバーを順番に再起動する備忘録です.エッセンスのみ忘れないように記しておきたいと思います.
結論は以下の通り(シェルスクリプトです).
#/bin/sh while IFS=', ' read -r usr srv do echo "Rebooting $srv by $usr..." ssh -tt -l $usr $srv sudo reboot & wait $! echo "" done << FILE adminuser, server_address(or FQDN) .... .... FILE
最初は tmux で同時にログインして……とかサーバーのリストを独立したファイルにして……とか考えたのですが,よく考えるとそこまでするほど多くない.と言うことで,ヒアドキュメントで管理IDとサーバー名をスクリプトに埋め込むことにしました.
また ssh が並列に実行されると,きちんと再起動できたかどうか見た目よく分かんなくなるので,
wait $!
で,ssh が終了するまで待ってから次のループに入るようにしています(これ,知らなかった).
とっても簡単ですが,sudo reboot のところを書き換えれば色々応用も利きますし,すぐに思い出せるようなものでもないので,念のための記録ですね.
以上!