用户登录到linux控制台,长时间没有操作,为了安全和节约性能我们需要把这类用户强制logout掉,假设我们规定一个登录上来的用户如果5分钟内都无任何操作,那么就使其logout,我们只需要设定Bash的环境变量TMOUT就好,如:

  1. [root@qyeee 17:00:39 ~]# TMOUT=$((5 * 60))   
  2. [root@qyeee 17:00:45 ~]# echo $TMOUT 
  3. 300 

用户5分钟内无任何操作,控制台就把用户断开了,这个设定写入用户登录配置文件中最合适。打开~/.bash_profile文件加入两行:

  1. TMOUT=300 
  2. export TMOUT 

记得要退出重新登录一次,这样就生效了。

第二个应用场合就是在bs脚本中了。

比如脚本运行的时候等待用户提供一些具体的数据,但是如果一段时间用户还没有输入的话,那就用默认值来代替用户输入,继续执行下面的任务。

这里有个简单密码生成脚本,如果用户没有在规定的时间内输入字符串,那就系统自动帮忙生成一个的密码。

  1. #!/bin/bash 
  2. echo "当前系统的bash版本 $BASH_VERSION" 
  3. TMOUT=5 
  4. echo "输入简单字符串,系统会返回一个密码" 
  5. echo "如果超过5秒还没有输入,系统自动生成一个健壮密码" 
  6. read string 
  7. test -z "$string" && { 
  8.         echo `mkpasswd` 
  9. } || { 
  10.         psw=`echo $string | md5sum | cut -c 1-8 | tr 'a-z' 'A-Z'
  11.         echo $psw 

上面的内容都我都亲自测试过,测试环境是centos 5.6,bash 3.2.25(1)-release。