Site icon Mr. 沙先生

tmux 用來切割 screen session 與同步發送指令給所有 session

最近因為某個業務特殊需求,常常需要被呼喚重啟服務 … 但是該服務有 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 後執行以下指令的快捷建。

 

秘技:「執行 Ctrl + b」進入 tmux 的命令模式,輸入「:setw synchronize-panes」即可看到 synchronize-panes 模式為 on,輸入任何的指令都會丟給所有 plane

 

反之再執行一次「:setw synchronize-panes」就關閉 synchronize-panes

 

要一次執行 18 台嗎? 那就開 18 個 panel 吧!

 

Reference:

終端機 session 管理神器 — tmux

tmux shortcuts & cheatsheet

 

 

 

 

 

 

 

 

Exit mobile version