最近因為某個業務特殊需求,常常需要被呼喚重啟服務 … 但是該服務有 18 台機器,由於目前還沒辦法自動化這個動作,所以需要人工 … 這時候第一個想到就是弄一個 script 去跑迴圈就好啦 !! 不過那時候看到同事用了一個很有趣的工具來解決這個問題 …
一問之下發現是安裝在 Linux 上的 tmux,tmux 是一個 client / server 模型,執行 tmux 時會啟動 tmux server 去管理所有的 panel / window / session 的切割畫面
你可能會說現在已經有很多工具都可以提供這樣的切割畫面了阿 !! 不過相對於 tmux 算是當你不是在自己常用的環境時,又需要這類型的工具的話最容易取得的一套工具,因為他只需要 yum / apt 即可安裝。
# CentOS $ sudo yum install tmux # Ubuntu $ sudo apt-get install tmux # MacOS $ brew install tmux
我這邊就不詳述所有 tmux 的快捷鍵跟用法,請直接參考下方的 Reference。
但是我這邊要特別提 Sync Panes,因為他可以讓你發送指令給當前所有的 panel 執行。
常用操作
執行 Ctrl + b 後執行以下指令的快捷建。
- pane
- window
秘技:「執行 Ctrl + b」進入 tmux 的命令模式,輸入「:setw synchronize-panes」即可看到 synchronize-panes 模式為 on,輸入任何的指令都會丟給所有 plane
反之再執行一次「:setw synchronize-panes」就關閉 synchronize-panes
要一次執行 18 台嗎? 那就開 18 個 panel 吧!
Reference: