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 命令 &后台执行的方式。测试

相关文章
相关标签/搜索