zoukankan      html  css  js  c++  java
  • Linux反空闲的设置和关闭

    有一定工作经验的运维人基本都会遇到这样的场景,某个窗口自动断开了,提示超时:

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

    如果你使用的是SecureCRT,很多人可能会想到工具有反空闲的设置,也是网上能轻易搜到的常用解决方案,可以在超时时间内定时发送一些信息,使得会话保持活跃状态。

    --比如定时发送“~”,但有时也会不好用:
    [oracle@jystdrac1 ~]$ ~timed out waiting for input: auto-logout
    
    --比如定时发送回车"
    ",测试还比较好用:
    
    但要注意这实际有非常大的隐患,可能引起误操作:
    不妨试想一下你远程桌面到某环境想删除某个目录下以.log结尾的日志文件,
    当你想要输入`rm -rf *.log`,但当只输入到`rm -rf *`时,网络故障远程桌面断了,远程桌面上的CRT终端还在
    那么接下来的自动定时"
    " 回车,就是一场灾难了,会把目录下所有文件都删除掉。。
    

    那追溯下为什么会有这样的自动超时限制,有这样的变量(这里为了方便演示,设置了10s间隔的超时):

    [oracle@jystdrac1 ~]$ echo $TMOUT
    10
    

    如果我们尝试临时设置TMOUT变量为0,就可以起到当前会话不会超时断开的作用(下面测试验证设置后,超过10s也未断开):

    [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
    

    这种情况就得考虑在超时时间内,反空闲发送" "回车了。但也同样面临上面说到的那种风险。
    或者以后当你知道自己操作必然是执行很久怕会话断掉,可以考虑nohup 命令 &后台执行的方式。

  • 相关阅读:
    01.html5+phonegap跨平台移动应用开发
    10个CSS简写/优化技巧
    JS高级学习历程-17
    JS高级学习历程-16
    算法详解之Tarjan
    分层图详解
    洛谷 题解 P1196 【[NOI2002]银河英雄传说】
    洛谷 题解 P1220 【关路灯 】
    洛谷 题解 P1352 【没有上司的舞会】
    二维前缀和详解
  • 原文地址:https://www.cnblogs.com/jyzhao/p/12629506.html
Copyright © 2011-2022 走看看