ヒアドキュメントと ssh で Unix サーバーを順番に再起動する備忘録

Environment
Photo by hyt.

ヒアドキュメントと 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 のところを書き換えれば色々応用も利きますし,すぐに思い出せるようなものでもないので,念のための記録ですね.

以上!

EnvironmentServer
スポンサーリンク
Following hyt!
タイトルとURLをコピーしました