感謝vgod撰寫的patch,一個晚上就弄出來了。
源起:
當你擁有五六台電腦甚至數十台或是Cluster,要同時更新Kernel會怎麼作呢?一台一台登入然後一台一台輸入指令?
現在不用那麼麻煩,screen加上patch就能做到指令只需要輸入一次,就能幫你傳給指定的一群電腦。
下面是轉錄自vgodroom在ofo.twbbs.org的文件:
剛才對screen作了一番手腳, 現在它可以把輸入的按鍵一次送到多個窗了
這個hack對於需要管理大量相同機器的人會很有用
你可以照舊輸入指令, screen就可以把指令直接送到指定的其它窗去
於是,再也不用作N次一模一樣的事情了!!
Usage:
Ctrl-A :sendto [window list|regex|'*'|'.']
window list是一連串用','分開的數字, 代表要把指令送到哪幾個window
例如:
C-A :sendto 1,3,4,5
這樣只要在1,3,4,5這些window中的一個輸入指令, 其餘的窗就會收到一樣的指令
另外也可以用regex
例如:
C-A :sendto linux.*[1-5]
這樣就等於設定了所有window title是linux.*[1-5]的窗
:sendto後面可以接'*', 代表所有的window (包括任何之後新開的window)
如果要disable sendto的功能, 可以用:sendto '.'或是不接任何參數
需要特別注意的是, 現階段用sendto設定的list是不會自動更新的
這意思是, 如果你設了一個sendto的list
把window kill掉並不會把該window從sendto list中拿掉
同理, 如果你用regex設了一個pattern
即使之後新開的window如果title有match該pattern, 它也不會被列入sendto list中
----
patch for screen 4.0.2
http://vgod.info/projects/screen-sendto ... vgod.patch
debian package(unstable)
http://vgod.info/projects/screen-sendto ... d_i386.deb
TODO:
目前這個程式還有一個問題,就是當你將window #5關掉後重新開一個新的視窗(這個視窗同樣會被assign到window #5),該視窗還是會在sendto功能的影響。會儘快修正。
BUGREPORT:
請告訴我或vgod
維護:
vgod & BBNS