Chinaunix

标题: liunx script操作记录 exit问题[linux操作监控、操作记录、键盘记录] [打印本页]

作者: feloxx    时间: 2016-04-11 15:41
标题: liunx script操作记录 exit问题[linux操作监控、操作记录、键盘记录]
我用系统环境变量+script方式做了套监控

监控方式是环境变量记录登录的IP 用户,然后静默执行script开始记录屏幕操作
  1. USERIP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'`
  2. LOGNAME=`who -u am i | awk '{print $1}'`
  3. HISTDIR=/var/log/.cdpKR
  4. time=`date +"%y%m%d%H%M%S"`

  5. if [ -z $USER_IP ]
  6. then
  7.     USER_IP=`hostname`
  8. fi
  9. if [ ! -d $HISTDIR ]
  10. then
  11.     mkdir -p $HISTDIR
  12.     chmod 777 $HISTDIR
  13. fi
  14. if [ ! -d $HISTDIR/${LOGNAME} ]
  15. then
  16.     mkdir -p $HISTDIR/${LOGNAME}
  17.     chmod 300 $HISTDIR/${LOGNAME}
  18. fi

  19. /usr/bin/script -qa /var/log/.cdpKR/${LOGNAME}/${USER_IP}_$time
复制代码
然后source环境变量后,监控既生效。
虽然监控是静默模式,但是在日常使用中,操作完机器却要执行2次退出,才能退出系统。
例如下面这样
  1. Last login: Mon Apr 11 13:47:47 2016 from 10.95.4.168
  2. [root@cxp1 ~]# exit
  3. exit
  4. [root@cxp1 ~]# exit
  5. logout
复制代码
原因可能为,第一次exit是退出监控,第二次是exit是退出系统。


请问:
我这里怎么实现一次exit既退出监控,又退出系统呢?
作者: feloxx    时间: 2016-04-11 15:43
之前想过,做个名字叫exit的脚本,去替换exit这个程序。
但是却找不到系统中exit在哪。

然后exit脚本又不会写
作者: lyhabc    时间: 2016-04-11 17:57
exit是一个内置命令,当然找不到了
type exit
exit is a shell builtin

作者: lyhabc    时间: 2016-04-11 17:58
bash 自带 trap命令 就是捕捉信号的
trap '执行的命令' 信号                 捕捉到该信号 执行单引号里的命令


用法
trap 'echo nihao' INIT 捕捉INIT信号,并输出nihao

作者: feloxx    时间: 2016-04-11 18:23
wocao
版主在BF待过?
作者: jixuuse    时间: 2016-04-12 10:27
alias exit /bin/myexit.sh

/bin/myexit.sh
exit
exit

作者: iiceburg    时间: 2016-04-12 19:43
命令的执行顺序好像是
内置命令
alias
外部命令
作者: q1208c    时间: 2016-04-15 15:18
/usr/bin/script -qa /var/log/.cdpKR/${LOGNAME}/${USER_IP}_$time
换成
exec /usr/bin/script -qa /var/log/.cdpKR/${LOGNAME}/${USER_IP}_$time

试试。
作者: feloxx    时间: 2016-04-26 15:03
回复 8# q1208c


        谢谢这位盆友。确实前面加个exec 就好使了,感谢。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2