multitmuxで複数サーバに同一のコマンドを発行する
tmuxで複数サーバの同時オペレーション
これを見て思い出したが、自分も同じようなshell script作った:
https://github.com/keisatou/multitmux
30台とか60台に対して同じコマンドを発行したいことが運用やってると割とあるので、そういった場面で便利。multitmuxで並列にコマンド発行して楽して、確認だけは慎重にやるみたいなオペレーションを想定している。
こんな感じで使う:
まず改行区切りのホストリストファイルを用意。(まとめて一行で書く記法には未対応。)
- host.list
host1 host2 host3
- openコマンドにホストリストを与えると、tmuxのwindowを開いてsshする:
$ multitmux open host.list
※ 0個目(一番左端のwindowはssh元のホストのままにしてある。)
- コマンドを送りたいときはこう:
$ multitmux exec 'hostname'
- パスワードを送りたいときはこう:
$ multitmux password
- 全windowを閉じたいときはこう:
$ multitmux close
会社ではこれのscreen版があって、それをまるまるパクりました。 確か古いtmuxだと-tオプションが無くて動かなかった気がする。