Linux反空閒的設置和關閉

有必定工做經驗的運維人基本都會遇到這樣的場景,某個窗口自動斷開了,提示超時:shell

[oracle@jystdrac1 ~]$ timed out waiting for input: auto-logout

若是你使用的是SecureCRT,不少人可能會想到工具備反空閒的設置,也是網上能輕易搜到的經常使用解決方案,能夠在超時時間內定時發送一些信息,使得會話保持活躍狀態。bash

--好比定時發送「~」,但有時也會很差用:
[oracle@jystdrac1 ~]$ ~timed out waiting for input: auto-logout

--好比定時發送回車"\n",測試還比較好用:

但要注意這實際有很是大的隱患,可能引發誤操做:
不妨試想一下你遠程桌面到某環境想刪除某個目錄下以.log結尾的日誌文件,
當你想要輸入`rm -rf *.log`,但當只輸入到`rm -rf *`時,網絡故障遠程桌面斷了,遠程桌面上的CRT終端還在
那麼接下來的自動定時"\n" 回車,就是一場災難了,會把目錄下全部文件都刪除掉。。

那追溯下爲何會有這樣的自動超時限制,有這樣的變量(這裏爲了方便演示,設置了10s間隔的超時):網絡

[oracle@jystdrac1 ~]$ echo $TMOUT
10

若是咱們嘗試臨時設置TMOUT變量爲0,就能夠起到當前會話不會超時斷開的做用(下面測試驗證設置後,超過10s也未斷開):oracle

[oracle@jystdrac1 ~]$ export TMOUT=0
[oracle@jystdrac1 ~]$ echo $TMOUT
0
[oracle@jystdrac1 ~]$ 
[oracle@jystdrac1 ~]$ date
Fri Apr  3 21:04:16 CST 2020
[oracle@jystdrac1 ~]$ date
Fri Apr  3 21:04:28 CST 2020
[oracle@jystdrac1 ~]$

但有一點須要注意,這個參數一般是root用戶下,/etc/profile文件設置的,若是同時設置了readonly TMOUT運維

export TMOUT=10
readonly TMOUT

那麼,就不會容許你臨時設置或取消TMOUT的值,若是你嘗試這樣作,會收到明確的提示:工具

[oracle@jystdrac1 ~]$ export TMOUT=0
-bash: TMOUT: readonly variable
[oracle@jystdrac1 ~]$ 
[oracle@jystdrac1 ~]$ unset TMOUT
-bash: unset: TMOUT: cannot unset: readonly variable
[oracle@jystdrac1 ~]$ 
[oracle@jystdrac1 ~]$ echo $TMOUT
10

這種狀況就得考慮在超時時間內,反空閒發送"\n"回車了。但也一樣面臨上面說到的那種風險。
或者之後當你知道本身操做必然是執行好久怕會話斷掉,能夠考慮nohup 命令 &後臺執行的方式。測試

相關文章
相關標籤/搜索