Bash shell中关于超时的应用
用户登录到linux控制台,长时间没有操作,为了安全和节约性能我们需要把这类用户强制logout掉,假设我们规定一个登录上来的用户如果5分钟内都无任何操作,那么就使其logout,我们只需要设定Bash的环境变量TMOUT就好,如:[*]# TMOUT=$((5 * 60))
[*]# echo $TMOUT
[*]300
用户5分钟内无任何操作,控制台就把用户断开了,这个设定写入用户登录配置文件中最合适。打开~/.bash_profile文件加入两行:
[*]TMOUT=300
[*]export TMOUT
记得要退出重新登录一次,这样就生效了。
第二个应用场合就是在bs脚本中了。
比如脚本运行的时候等待用户提供一些具体的数据,但是如果一段时间用户还没有输入的话,那就用默认值来代替用户输入,继续执行下面的任务。
这里有个简单密码生成脚本,如果用户没有在规定的时间内输入字符串,那就系统自动帮忙生成一个的密码。
[*]#!/bin/bash
[*]echo "当前系统的bash版本 $BASH_VERSION"
[*]TMOUT=5
[*]echo "输入简单字符串,系统会返回一个密码"
[*]echo "如果超过5秒还没有输入,系统自动生成一个健壮密码"
[*]read string
[*]test -z "$string" && {
[*] echo `mkpasswd`
[*]} || {
[*] psw=`echo $string | md5sum | cut -c 1-8 | tr 'a-z' 'A-Z'`
[*] echo $psw
[*]}
上面的内容都我都亲自测试过,测试环境是centos 5.6,bash 3.2.25(1)-release。
页:
[1]