Linux记录操作日志

Posted 一点点积累

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux记录操作日志相关的知识,希望对你有一定的参考价值。

  • 根据客户需求需要记录服务器的所有日志,并且要详细!后续会保存60天
  • 实现方式:记录所有用户所执行的命令都发送给日志守护进程rsyslogd
# vim /etc/profile

###################################################
#设置history格式
export HISTTIMEFORMAT="[%Y-%m-%d %H:%M:%S] [`who am i 2>/dev/null| \\
awk print $NF|sed -e s/[()]//g`] "


#记录所有用户所执行的每一个命令都发送给日志守护进程rsyslogd
export PROMPT_COMMAND=\\
if [ -z "$OLD_PWD" ];then
export OLD_PWD=$PWD;
fi;
if [ ! -z "$LAST_CMD" ] && [ "$(history 1)" != "$LAST_CMD" ]; then
logger -t `whoami`_shell_cmd "[$OLD_PWD]$(history 1)";
fi ;
export LAST_CMD="$(history 1)";
export OLD_PWD=$PWD;
  • source一下
# source /etc/profile
  • 因为是发送给rsyslogd进程,所以在/etc/rsyslog.conf设置存放路径
# vim /etc/rsyslog.conf 
*.info;mail.none;authpriv.none;cron.none;user.none /var/log/messages # 添加user除外,要不然message和history都会记录浪费存储
user.* /var/log/history # 新增一条
  • 重启rsyslog服务
# systemctl restart rsyslog
  • 测试一下

Linux记录操作日志_Linux操作记录

  • 每天切割可以通过logrotate来实现
# vim /etc/logrotate.d/history
/var/log/history
daily
copytruncate
rotate 7
compress
dateext
delaycompress
notifempty
missingok
create 644 root root

# logrotate -f /etc/logrotate.d/history
  • 执行完就有了

Linux记录操作日志_history_02

以上是关于Linux记录操作日志的主要内容,如果未能解决你的问题,请参考以下文章

Linux默认日志含义

Linux系统管理初步系统日志与screen程序

Xshell记录Linux连接操作日志遇到的坑

Linux /var/log下的各种日志文件详解

Linux记录操作日志

linux 记录用户操作记录日志