正文:
步骤一:将 messages 日志的 logrotate 配置文件分离出来
# vim /etc/logrotate.d/syslog
删除以下内容:
......
/var/log/messages
......
步骤二:创建 messages 日志的 logrotate 配置文件
2.1 案例一
# vim /etc/logrotate.d/messages
创建以下内容:
/var/log/messages
/var/log/secure
/var/log/maillog
{
delaycompress
dateext
rotate 5
missingok
notifempty
weekly
create 755 root root
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}
(
补充:这里以:
1) 影响的日志文件有 /var/log/messages、/var/log/secure 和 /var/log/maillog (/var/log/messages /var/log/secure /var/log/maillog)
2) 备份的日志文件以日期的形式结尾 (dateext)
3) 对备份的日志文件进行压缩 (delaycompress,默认使用 gz 格式进行压缩)
4) 备份的日志文件保留 5 份 (rotate 5)
5) 如果现有日志文件丢失,则不报错直接生成新的日志文件 (missingok)
6) 如果现有日志文件是空文件,则不再对日志文件进行备份 (notifempty)
7) 每周将现在的日志文件进行备份并生成新的日志文件 (weekly)
8) 日志文件权限是 0755 所属主是 root 所属组是 root (create 755 root root)
9) 在所有的现在的日志文件都备份并生成新的日志文件以后再统一执行脚本(sharedscripts,如果没有这个参数则每个日志文件在完成了这一动作后会各自单独执行脚本)
为例
)
2.2 案例二
# vim /etc/logrotate.d/messages
创建以下内容:
/var/log/messages
/var/log/secure
/var/log/maillog
{
dateext
compress
rotate 4
missingok
notifempty
daily
create
olddir /var/log/message/old
copytruncate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}
(
补充:这里以:
1) 影响的日志文件有 /var/log/messages、/var/log/secure 和 /var/log/maillog (/var/log/messages /var/log/secure /var/log/maillog)
2) 备份的日志文件以日期的形式结尾 (dateext)
3) 对备份的日志文件进行压缩 (compress,默认使用 gz 格式进行压缩)
4) 备份的日志文件保留 4 份 (rotate 5)
5) 如果现有日志文件丢失,则不报错直接生成新的日志文件 (missingok)
6) 如果现有日志文件是空文件,则不再对日志文件进行备份 (notifempty)
7) 每日将现在的日志文件进行备份并生成新的日志文件 (daily)
8) 日志文件的权限是默认权限 (create)
9) 将轮转钱的旧日志转移到目录 /var/log/message/old 中
10) 轮转时不关闭原日志,而是创建 1 个要被轮转的备份,轮转它,然后再将原日志清空 (copytruncate)
为例
)
步骤二:让创建的 messages 日志的 logrotate 配置文件生效
# systemctl restart rsyslog
参考文献:
https://www.redhat.com/en/blog/setting-logrotate
