logrotate通过配置/etc/logrotate.conf实现日志自动轮转,支持周期切割、压缩保留及错误处理,推荐结合全局策略与/etc/logrotate.d/下服务独立配置,如Nginx按日轮转并重载服务,通过logrotate -d/-f测试验证规则生效,避免磁盘溢出。

Linux系统中的日志文件会随着时间不断增长,过大的日志文件不仅占用磁盘空间,还会影响系统性能和排查问题的效率。logrotate 是 Linux 上用于自动管理日志轮转(切割、压缩、删除旧日志)的工具。通过修改 /etc/logrotate.conf 文件,可以统一配置全局日志行为。
理解 logrotate.conf 的基本结构
/etc/logrotate.conf 是 logrotate 的主配置文件,定义了默认策略和包含其他配置的目录。常见的内容如下:
# 全局配置weeklyrotate 4createdateextinclude /etc/logrotate.d
weekly:默认每周轮转一次日志rotate 4:保留4个历史日志版本,超过则删除最老的create:轮转后创建新的空日志文件dateext:使用日期作为轮转文件的后缀(如 access.log-20250405)include /etc/logrotate.d:包含该目录下所有服务的独立配置(推荐方式)
修改全局策略以适应实际需求
如果希望改变所有日志的默认行为,可以直接编辑 /etc/logrotate.conf。例如:
将 weekly 改为 daily 实现每日切割调整 rotate 4 为 rotate 7 保留更多备份添加 compress 启用gzip压缩,节省空间加入 missingok 避免因日志临时缺失报错使用 notifempty 不对空文件进行轮转
修改后示例片段:
dailyrotate 7compressmissingoknotifemptycreatedateextinclude /etc/logrotate.d
针对特定服务的配置建议
虽然可以修改全局配置,但更推荐在 /etc/logrotate.d/ 下为具体服务单独设置。例如 Nginx 的配置文件 /etc/logrotate.d/nginx:
ONLYOFFICE
用ONLYOFFICE管理你的网络私人办公室
1027 查看详情
/var/log/nginx/*.log { daily rotate 10 missingok compress delaycompress notifempty create 0640 www-data adm sharedscripts postrotate systemctl reload nginx > /dev/null 2>&1 || true endscript}
sharedscripts:多个日志只执行一次 postrotate 脚本postrotate…endscript:轮转后重新加载服务,确保写入新文件create 0640:指定新日志权限和所属用户组
测试与验证配置是否生效
修改配置后,应先测试语法正确性,避免自动任务失败:
运行 logrotate -d /etc/logrotate.conf 查看调试输出,确认匹配规则使用 logrotate -f /etc/logrotate.conf 强制执行一次轮转(可用于验证)检查目标日志目录是否有新生成的 .log-日期 文件查看压缩情况,确认 .gz 文件生成
系统通常通过 cron 自动执行 logrotate,无需手动干预日常运行。
基本上就这些。合理设置 /etc/logrotate.conf 和子配置,能有效管理日志生命周期,避免磁盘被撑满。关键是根据业务日志量选择合适的轮转频率和保留策略。不复杂但容易忽略细节。
以上就是Linux日志怎么切割_Linux日志通过修改/etc/logrotate.conf全局配置的指南的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/866577.html
微信扫一扫
支付宝扫一扫