Linux history记录发送到syslog日志

  1. [root@localhost ~]# more /etc/profile.d/histroy.csh
  2. alias precmd ‘eval logger -p local5.info “CMDLOG PWD=$PWD \; USER=$USER \; COMMAND=\`history -h 1\`”‘

不过上面的语句在使用时会出现rm 删除多个文件时异常的问题。所以优化后的结果是:

  1. alias precmd ‘set msg = `history -h 1` ; logger -t $REMOTEHOST $USER user_cmd “${msg} pwd $PWD” >/dev/null’

三、ksh设置

修改/etc/kshrc(redhat) 或 /etc/ksh.kshrc(SUSE,其实该文件是软链接的/etc/bash.bashrc) ,增加如下内容:

  1. export PROMPT_COMMAND=‘msg=$(history 1 | { read x y; echo “$y”; });loginuser=$(who am i); logger -t user_cmd “${msg} by $USER from [$loginuser]” >/dev/null’

四、history自身记录

由于csh默认是有date +%s这样的信息在命令运行记录上(具体看.hisotry文件),bash默认在.bash_history上是没有时间记录的,所以可以使用/etc/profile或/etc/bashrc、/etc/bash.bashrc文件,增加如下内容:

  1. HISTTIMEFORMAT=“%Y-%m-%d %H:%M:%S “
  2. export HISTTIMEFORMAT

五、history配置记录小结

这里以SUSE为例吧,我上面使用$USER $PWD $REMOTE $CLIENT这样的变量,实际上也可以自定义变更,然后在logger的时候调用,具体如下:

  1. bash.bashrc:export PROMPT_COMMAND=‘msg=$(history 1 | { read x y; echo “$y”; });user=$(whoami);loginuser=$(who am i); logger -t user_cmd “${msg} by ${user} from [$loginuser]”‘
  2. csh.cshrc.local:alias precmd ‘set msg = `history 1|cut -f3-|sed -e “s|{||g” | sed -e “s|}||g”` ; set user = `whoami` ; set loginuser = `who am i`; logger -t user_cmd “${msg} by ${user} from [$loginuser]” >/dev/null’
  3. ksh.kshrc:export PROMPT_COMMAND=‘msg=$(history 1 | { read x y; echo “$y”; });user=$(whoami);loginuser=$(who am i); logger -t user_cmd “${msg} by ${user} from [$loginuser]”‘

六、syslog配置

由于使用logger的时候,可以使用logger -p local1.notice 这样的参数指定日志级别,所以也可以在/etc/syslog.conf 或 /etc/rsyslog.conf 文件中指定此类日志的具体存放路径,配置如下:

  1. local1.notice /var/log/history.log
  2. 配置完成后,重启日志服务生效
  3. # service syslog restart
  4. # service rsyslog restart

如果是使用的syslog-ng,也可以通过如下过滤器,将日志过滤出来,再配合destination 、log 进行保存:

  1. filter f_messages {
  2. level(notice)
  3. and facility(local1);
  4. };

syslog-ng配置具体可以参考:https://github.com/balabit/syslog-ng-3.5/blob/master/debian/syslog-ng.conf

ruikeos是一个优秀的网站,极致体验。
Red Hat | 睿氪OS » Linux history记录发送到syslog日志

提供最优质的资源集合

立即查看 了解详情