免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2414 | 回复: 5
打印 上一主题 下一主题

[新手入门] 请教有没方法记录所有用户的命令行历史记录,包括参数,执行结果,时间,用户名等... [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-01-21 17:37 |只看该作者 |倒序浏览
acct和audit貌似都不可以,有其他的方法吗

论坛徽章:
0
2 [报告]
发表于 2009-01-22 10:05 |只看该作者
脚本实现有无可能?

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
3 [报告]
发表于 2009-01-22 10:34 |只看该作者
脚本可以实现。我写过,但不方便公开。

论坛徽章:
0
4 [报告]
发表于 2009-01-22 10:49 |只看该作者
能否提示一下使用了什么方法,我的想法是在命令交由shell解释之前由我的脚本先处理,然后再交给shell,能否mail我:    oilz@163.com

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
5 [报告]
发表于 2009-01-22 11:09 |只看该作者
http://www.cublog.cn/u/739/showart.php?id=436897
稍加改动,能满足你所有的需求。

论坛徽章:
0
6 [报告]
发表于 2009-01-22 16:59 |只看该作者
多谢,不过觉得这个方法还是比较没有效率,用户太多的话会启动很多进程

还是有几个问题,进程如果被kill -9杀掉,运行标志不会被清除,不知道为什么,kill可以,貌似9信号捕捉不到
没有使用HISTFILE变量,那样会导致set -o vi后,esc+k的结果输出时间

所以实现方法改为,刷新.sh_history到另外一个文件,再加入时间戳

root@f80:[/tmp]#cat timeinsert
trap "do_exit" 1 2 3 9 15

do_exit()
{
  rm /tmp/$LOGNAME/timeinsert.flag
  exit 0
}

>/tmp/$LOGNAME/timeinsert.flag
while [ 1 = 1 ]
do
echo `date` >> $my_HISTFILE
sleep 3
done
root@f80:[/tmp]#cat sh_sync
trap "do_exit" 1 2 3 9 15

do_exit()
{
  rm /tmp/$LOGNAME/sh_sync.flag
  exit 0
}

>/tmp/$LOGNAME/sh_sync.flag
tail -f ~/.sh_history >> $my_HISTFILE
root@f80:[/tmp]#tail -20 /etc/profile
cd /tmp
if [ ! -d $LOGNAME ];then
mkdir $LOGNAME
fi
my_HISTFILE=/tmp/$LOGNAME/sh.out
export my_HISTFILE

if [ ! -f /tmp/$LOGNAME/timeinsert.flag ];then
nohup /tmp/timeinsert &
fi
if [ ! -f /tmp/$LOGNAME/sh_sync.flag ];then
nohup /tmp/sh_sync &
fi
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP