- 论坛徽章:
- 0
|
多谢,不过觉得这个方法还是比较没有效率,用户太多的话会启动很多进程\r\n\r\n还是有几个问题,进程如果被kill -9杀掉,运行标志不会被清除,不知道为什么,kill可以,貌似9信号捕捉不到\r\n没有使用HISTFILE变量,那样会导致set -o vi后,esc+k的结果输出时间 \r\n\r\n所以实现方法改为,刷新.sh_history到另外一个文件,再加入时间戳\r\n\r\nroot@f80:[/tmp]#cat timeinsert \r\ntrap \"do_exit\" 1 2 3 9 15\r\n\r\ndo_exit()\r\n{\r\n rm /tmp/$LOGNAME/timeinsert.flag\r\n exit 0\r\n}\r\n\r\n>/tmp/$LOGNAME/timeinsert.flag\r\nwhile [ 1 = 1 ]\r\ndo\r\necho `date` >> $my_HISTFILE\r\nsleep 3\r\ndone\r\nroot@f80:[/tmp]#cat sh_sync\r\ntrap \"do_exit\" 1 2 3 9 15\r\n\r\ndo_exit()\r\n{\r\n rm /tmp/$LOGNAME/sh_sync.flag\r\n exit 0\r\n}\r\n\r\n>/tmp/$LOGNAME/sh_sync.flag\r\ntail -f ~/.sh_history >> $my_HISTFILE\r\nroot@f80:[/tmp]#tail -20 /etc/profile\r\ncd /tmp\r\nif [ ! -d $LOGNAME ];then\r\nmkdir $LOGNAME\r\nfi\r\nmy_HISTFILE=/tmp/$LOGNAME/sh.out\r\nexport my_HISTFILE\r\n\r\nif [ ! -f /tmp/$LOGNAME/timeinsert.flag ];then\r\nnohup /tmp/timeinsert & \r\nfi\r\nif [ ! -f /tmp/$LOGNAME/sh_sync.flag ];then\r\nnohup /tmp/sh_sync & \r\nfi |
|