Linux 日志文件失控的治理方案-linux运维

logrotate 配置未生效主因是定时器未触发或规则未被加载;需检查 logrotate.timer 状态、/etc/logrotate.d/ 下文件权限与 include 路径;按大小轮转须避免与 daily 冲突,推荐使用 size、copytruncate、notifempty 和 missingok;journald 和 Docker 日志需分别通过 journald.conf 和 daemon.json 限流。

logrotate 配置写了却没轮转?先查定时器有没有跑

日志文件持续膨胀、logrotate -d /etc/logrotate.conf 手动执行又一切正常——这基本说明配置根本没被触发。不是规则写错了,是压根没进调度队列。

  • systemctl list-timers | grep logrotate:新版 systemd 默认启用 logrotate.timer,如果没看到,说明定时器没注册或被禁用
  • ls -l /etc/logrotate.d/:确认你的规则文件(比如 myapp)确实在这个目录下,且权限是 644(不能是 600 或 755)
  • grep -r "include" /etc/logrotate.conf:必须有 include /etc/logrotate.d 这一行,否则所有 /etc/logrotate.d/ 下的文件都会被忽略

按大小切日志,别迷信 daily

一天 1KB 和一天 8GB 的日志,硬按时间轮转毫无意义。用 size 才能真正控住单个文件体积,但参数之间有冲突,一错就失效。

  • size 100M 和 daily 不能共存:只要写了 daily,logrotate 就只看时间,size 形同虚设
  • copytruncate 是关键:应用不重开日志句柄时,必须用它,否则轮转后原进程还在往已清空的旧文件写,磁盘空间不释放
  • notifempty 和 missingok 建议常驻:避免空日志或临时缺失路径导致整个轮转流程中断

示例规则:

/var/log/myapp/app.log {
    size 100M
    rotate 7
    compress
    delaycompress
    copytruncate
    notifempty
    missingok
}

journald 占满几十 GB?别删文件,改配置再 vacuum

/var/log/journal/ 突然飙到 30GB+,不是磁盘坏了,是 systemd-journald 根本没设上限。直接 rm -rf /var/log/journal/* 不但白干,重启后还会重新索引旧日志。

夏夕资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"zy.lucklyus.top",如遇到无法解压的请联系管理员!
夏夕资源网-网站模板_免费源码_资源素材 » Linux 日志文件失控的治理方案-linux运维
在线时间:12:00 - 22:00
关注微信公众号:微信公众号
站长邮箱:[email protected]
  • 运营天数: 1392+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4003809+
  • 本周更新: 0+
  • 最后更新: 2026-03-16

本站指数

×
  • 运营天数: 1392+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4003809+
  • 本周更新: 0+
  • 最后更新: 2026-03-16