読者です 読者をやめる 読者になる 読者になる

multitmuxで複数サーバに同一のコマンドを発行する

tmux

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オプションが無くて動かなかった気がする。