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
- 测试一下
- 每天切割可以通过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记录操作日志的主要内容,如果未能解决你的问题,请参考以下文章