有必定工做经验的运维人基本都会遇到这样的场景,某个窗口自动断开了,提示超时: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 命令 &
后台执行的方式。测试