使用Screen抵禦杯具

2022-01-30 15:42:50 字數 2032 閱讀 3190

當dba遠端做乙個大操作的時候最怕的是什麼?斷網!有木有啊!!

建乙個20g的索引,進度到98%的時候突然斷網,前功盡棄,有木有啊!!

怎麼樣才能抵禦這種杯具呢?找一台windows的機器作為終端,上面裝上ssh工具,那linux呢?靠它——screen

screen是乙個可以在多個程序之間多路復用乙個物理終端的視窗管理器。screen中有會話的概念,使用者可以在乙個screen會話中建立多個screen視窗,在每乙個screen視窗中就像操作乙個真實的telnet/ssh連線視窗那樣。簡單來說就是乙個命令列版本的securecrt。     

當遠端會話不幸關閉的時候,screen還能駐留在伺服器端,並且很容易地重連(attach),這樣就保證我們的工作不會因為網路問題而終端,這是多麼好的功能啊。

鍵入screen即可使用screen

[oracle@alifina-dev12 ~]$ screen
如果報以下錯:

cannot open your terminal '/dev/pts/10' - please check.
使用以下命令將輸出重定向即可:

[oracle@alifina-dev12 ~]$ script /dev/null
然後我們開始乙個任務,譬如用vim寫**,突然抓狂把終端強行關閉了,那時不是之前的努力都沒有了呢?

我們重連乙個會話,用以下命令檢視並且再次attach即可,我們的成果還在!

[oracle@alifina-dev12 ~]$ screen -ls

there is a screen on:

7366.pts-0.alifina-dev12 (detached)

1 socket in /var/run/screen/s-oracle.

[oracle@alifina-dev12 ~]$ screen -r 7366

這絕對是screen的殺手鐗功能!!

screen還能做得更好嗎?當然!

修改~/.screenrc,如果整台伺服器都是你用的話也可以修改/etc/screenrc

## general tweaks

vbell off

autodetach on

startup_message off

defscrollback 1000

attrcolor b ".i"

termcap xterm 'co#256:ab=\e[48;5;%dm:af=\e[38;5;%dm'

defbce "on"

escape "^kk"

defencoding utf-8

encoding utf-8 utf-8

hardstatus alwayslastline '%[%= %%?%-lw%?%[%%n%f %t%?(%u)%?%]%%?%+lw%?%?%= %]%[%m/%d %c%a]%'

shell -$shell

現在screen開起來會像這樣:

看到沒,下面那一行彩色的東西,輸入ctrl+k,緊接著馬上輸入c,多了乙個:

輸入 ctrl+k n 就可以移動到下乙個window(輸入ctrl+k p是上乙個window),功能和securecrt的tab一樣。

有朋友會問為什麼是ctrl+k 呢?這個是在screenrc(.screenrc)中定義的,還有個特別的名字——命令鍵,我受visual studio的毒害很深,愛上了ctrl+k,所以把它設為 ctrl+k。

一些有用的操作:

命令鍵 a(注意是大寫的a,平時輸入是shift+a):將window改名。

命令鍵 c:建立乙個新的window

命令鍵 d:detache當前這個screen

命令鍵 ?:幫助……

「杯具」版人生

概述杯具,原指盛水的器具,後因與 悲劇 一詞諧音,成為網路流行語,詞性多變 可作形容詞,名詞等等。不少年輕人在網路上甚至生活中都常常用 杯具 來代替 悲劇 形容人 事 物。隨著網路語言的流傳,更出現了 人生是張茶几,上面放滿了杯具 等 箴言 1.0版 人生是杯具。2.0版 我的人生就像茶几,上面擺滿...

7 3 杯具倒水

在你面前有兩個不規則的杯具,分別容積為a公升和b公升,還有乙個水缸 水無限多 可供裝水,那麼能不能通過兩個杯具的裝倒水操作,量出c公升的水?輸入格式 輸入的第一行包含乙個整數n n 100 表示包括表示測試資料數 接下來n行,每行三個整數a,b,c其中 1 a 輸出格式 輸出n行 每行輸出乙個整數,...

IT人的杯具生命

最近乙個月內,每天早出晚歸,每天除了睡覺外,其餘的時間基本上都是在公司辦公室裡面度過的。沒有時間去洗衣服,沒有時間出去跟朋友聚會,每天想的都是工作相關的東西。晚上加班到很晚,睡覺時間都是晚上十二點以後,每天的睡覺時間少於生命所需要的八小時。晚上很晚回去,到家後,便倒在床上,第二天被鬧鐘吵醒,然後匆忙...