阅读量:1
Ubuntu日志轮转策略全览
一 核心机制与触发条件
- 在 Ubuntu 中,日志轮转由 logrotate 统一管理,配置文件位于 /etc/logrotate.conf 与 /etc/logrotate.d/。系统通常通过 /etc/cron.daily/logrotate 每日触发执行,并在 /var/lib/logrotate/status 记录最近轮转状态。常用触发与保留策略包括:按时间(如 daily/weekly/monthly/yearly)、按大小(size)、以及按保留个数(rotate)。例如:按天轮转并保留 7 天、或每周轮转并保留 4 周等。
二 常用策略与关键参数
- 下表汇总了实践中最常用、最实用的策略与参数(可按需组合使用):
| 策略/参数 | 作用与说明 | 典型示例 |
|---|---|---|
| 时间触发 | 按固定周期轮转 | daily / weekly / monthly / yearly |
| 大小触发 | 文件达到阈值即轮转 | size 100M;可与时间条件“或”逻辑组合 |
| 保留数量 | 控制历史副本个数 | rotate 7(保留7个旧日志) |
| 压缩归档 | 节省磁盘空间 | compress;配合 delaycompress 常用于 syslog |
| 空文件处理 | 空日志不轮转 | notifempty |
| 缺失文件处理 | 日志缺失不报错 | missingok |
| 新建日志 | 轮转后创建新文件并设定权限属主 | create 0640 root adm |
| 复制后截断 | 避免重启应用,先复制再清空原文件 | copytruncate(适用于不便发信号的应用) |
| 轮转后通知 | 让进程重新打开日志文件 | postrotate … endscript(如向进程发送 HUP/USR1) |
| 日期后缀 | 以日期命名旧日志,便于追溯 | dateext;dateformat -%Y%m%d |
| 共享脚本 | 多个日志共享同一 postrotate | sharedscripts |
- 说明:
- 时间触发与大小触发可组合,满足任一条件即轮转(例如:daily 且 size 50M)。
- 对 rsyslog/syslog 等常驻服务,常用 postrotate 触发 HUP 重载,或使用 copytruncate 避免重启。
- delaycompress 常与 compress 搭配,避免刚轮转出的日志立即被压缩,便于短期排查。
三 典型配置示例
- 示例一 系统日志 rsyslog(按周轮转,保留一年)
/var/log/syslog {
weekly
rotate 52
compress
delaycompress
missingok
notifempty
create 0640 root adm
postrotate
/usr/lib/rsyslog/rsyslogd reload > /dev/null
endscript
}
- 示例二 Nginx 访问日志(按天或超 100MB 轮转,保留 30 天,日期后缀)
/var/log/nginx/*.log {
daily
size 100M
rotate 30
compress
delaycompress
missingok
notifempty
create 0640 www-data adm
dateext
dateformat -%Y%m%d
sharedscripts
postrotate
nginx -s reopen
endscript
}
- 示例三 应用日志(按天轮转,保留 7 天,复制后截断)
/var/log/myapp/*.log {
daily
rotate 7
compress
missingok
notifempty
copytruncate
create 0640 root adm
}
- 提示:不同服务的权限属主(如 root adm、www-data adm)应与实际运行用户匹配,避免写入失败。
四 验证与运维要点
- 语法与模拟:使用 logrotate -d /path/to/conf 进行干跑(调试模式),检查规则是否生效且无语法错误。
- 强制执行:使用 logrotate -f /etc/logrotate.conf 或针对单个配置 -f /etc/logrotate.d/xxx 强制触发一次轮转,便于验证。
- 定时与状态:确认 /etc/cron.daily/logrotate 存在且可执行;查看 /var/lib/logrotate/status 了解最近轮转时间与结果。
- 应用通知:对需要重新打开日志的守护进程,优先使用 postrotate … endscript 发送信号(如 HUP/USR1);若不便发信号,再考虑 copytruncate。
- 权限与属主:确保 create 指定的 mode/owner/group 与应用运行身份一致,避免轮转后无法写入。
以上就是关于“Ubuntu日志轮转策略有哪些”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm