Linux Syslog日志轮转主要通过logrotate
工具实现,以下是关键技巧和配置要点:
安装logrotate
大多数系统默认安装,未安装时使用包管理器安装:
# Debian/Ubuntu
sudo apt-get install logrotate
# CentOS/RHEL
sudo yum install logrotate
配置日志轮转规则
在/etc/logrotate.d/
目录下创建自定义配置文件(如syslog
),常用参数:
daily/weekly/monthly
:轮转周期。rotate N
:保留N个轮转日志文件。compress
:压缩旧日志(节省空间)。delaycompress
:延迟到下一次轮转时压缩。missingok
:日志文件丢失时不报错。notifempty
:空文件不轮转。create
:轮转后创建新日志文件并设置权限(如create 0640 root adm
)。copytruncate
:复制日志内容后清空原文件(适用于无法重启的服务)。postrotate/endscript
:轮转后执行命令(如重启服务)。示例配置(针对/var/log/syslog
):
/var/log/syslog {
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 0640 root adm
postrotate
/usr/sbin/systemctl reload rsyslog
endscript
}
测试与验证
sudo logrotate -f /etc/logrotate.d/syslog
。sudo logrotate -d /etc/logrotate.d/syslog
。自动化与监控
/etc/cron.daily/logrotate
存在且可执行,logrotate默认通过cron定时运行。cat /var/lib/logrotate/status
。注意:部分系统(如使用rsyslog
)需在postrotate
中重启服务以确保日志持续写入。根据实际需求调整参数,平衡日志保留时长与磁盘空间占用。