发布于2026-08-16 阅读(0)
扫一扫,手机访问
logrotate 的配置文件需要放到 /etc/logrotate.d/ 目录里,这一步不能放错。原因很直接:cron 实际上只会通过 /etc/cron.daily/logrotate 去调用 /etc/logrotate.conf,而后者又是靠 include /etc/logrotate.d 来加载具体配置的,换到其他路径,系统默认并不会识别。针对 Nginx 日志,通常要配上 daily、dateext、dateyesterday 和 dateformat -%Y-%m-%d,另外还得在 postrotate 里使用 kill -USR1 做安全重载,这样日志切分后服务本身也能平稳接管新文件。

必须把配置文件放到 /etc/logrotate.d/ 目录下,否则 cron 永远不会执行它。
logrotate 并不会去“满系统乱找”配置,它实际上只看两个固定位置:/etc/logrotate.conf(主配置文件)和 /etc/logrotate.d/ 目录下的所有配置。系统每天会通过 /etc/cron.daily/logrotate 这个脚本执行 logrotate /etc/logrotate.conf,而主配置里默认又写着 include /etc/logrotate.d。说白了,Nginx、MySQL 这类服务的日志轮转配置之所以要放进这个目录,原因就在这里。
常见错误:
/root/nginx.logrotate 或 /usr/local/etc/logrotate.d/nginx,手动运行 logrotate -f 成功了,就以为部署好了——其实 cron 根本看不到.conf 后缀(比如 nginx.conf),logrotate 会直接跳过它644、属主不是 root:root,某些发行版会静默忽略关键不是只加 dateext,而是要配合 daily 和 dateyesterday 才能生成形如 access.log-2026-07-08 的文件名(即“昨天”的日期,语义更准确)。
示例配置(写入 /etc/logrotate.d/nginx):
/var/log/nginx/*.log {
daily
dateext
dateyesterday
dateformat -%Y-%m-%d
missingok
rotate 7
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
postrotate
pidfile=$(nginx -t 2>&1 | grep "pid" | awk '{print $NF}')
[ -f "$pidfile" ] && kill -USR1 $(cat "$pidfile")
endscript
}
注意点:
dateformat 必须紧接 dateext 使用,且格式字符串前要带短横线(-%Y-%m-%d),否则生成的文件名可能缺分隔符postrotate 里别用 systemctl reload nginx:它会触发 worker 进程重启,有丢请求风险;kill -USR1 是原子重开日志句柄,零停机pidfile 路径不能硬编码——nginx -t 输出里的 pid 行才是真实路径,兼容不同安装方式如果日志增长不均匀(比如白天流量大、夜间几乎为零),单靠 daily 可能某天白切一次空文件;这时应优先用 size 触发,例如 size +50M(单位必须大写 M,小写 m 会报错)。
两者可以共存:
daily 和 size +50M 同时存在时,满足任一条件即触发轮转rotate 7 控制的是保留份数,和 daily 无关——它不是“保留最近 7 天”,而是“最多留 7 个归档文件”compress:压缩开销可能超过节省的空间copytruncate,但要注意:它靠复制+清空原文件实现,期间可能丢几行日志别等第二天看效果,先本地验证:
logrotate -d /etc/logrotate.d/nginx —— 只打印动作,不真执行,重点看有没有 “error” 或 “skipping”logrotate -f /etc/logrotate.d/nginx —— 生产环境慎用,避免和 cron 冲突导致重复切割cat /var/lib/logrotate.status,确认对应日志路径的最后轮转时间ls -l /var/log/nginx/,看新文件权限是否是 0640、旧文件名是否含日期、postrotate 是否成功发信号(ps aux | grep nginx 看 master 进程是否还在)最容易被忽略的是 missingok:Nginx 刚装好还没产生日志时,没有它,整个 logrotate 任务会中断,后续所有配置都不执行。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9