利用PROMPT_COMMAND记录每个用户执行的历史命令

在/etc/profile里加入以下几行

1
2
3
export HISTORY_FILE=/var/log/command_history/`date  '+%Y-%m-%d' `.log
export PROMPT_COMMAND= '{ date "+%Y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$5}")  #### $(history 1 | { read x cmd; echo "$cmd"; })"; } >> $HISTORY_FILE'
chmod a+w  $HISTORY_FILE     给所有用户加写权限


1
2
3
4
export HISTORY_FILE=/var/log/command_history/`date  '+%Y-%m-%d' `.log
export PROMPT_COMMAND= '{ date "+%Y-%m-%d %T $(history 1 | { read x cmd; echo "$cmd USER:$USER FROM IP:$SSH_CLIENT PS:$SSH_TTY"; })"; } >>$HISTORY_FILE'
 
export PROMPT_COMMAND= '{ date "+[ %Y%m%d %H:%M:%S `whoami` ] `history 1 | { read x cmd; echo "$cmd      USER:$USER from ip:$SSH_CLIENT   $SSH_TTY"; }`"; } >> /root/test.log'

1
export  PROMPT_COMMAND= '{ date "+%Y-%m-%d %T  $(who am i |awk "{print \$1\" \"\$2\" \"\$5}")   $(history 1 | { read x cmd; echo "$cmd"; })"; } >> /tmp/`date "+%F"`.`hostname`.`whoami`.history-timestamp'

1
export  PROMPT_COMMAND= '{ msg=$(history 1 | { read x y; echo $y; });user=$(whoami);echo $(date "+%F %H:%M:%S"):$user:`pwd`/:$msg ---- $(who am i); } >> /tmp/`date "+%F"`.`hostname`.`whoami`.history-timestamp'

添加完成,保存退出,然后使用如下的命令使之生效:

#. /etc/profile


# source /etc/profile

注意:如果没有报错说明成功了。

然后每个用户执行的历史命令就会存在以当前日期命名的log文件中。




本文转自 xoyabc 51CTO博客,原文链接:http://blog.51cto.com/xoyabc/1658267,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值