温馨提示×

为何linux日志突然变大

小樊
37
2026-09-08 11:32:26
栏目: 智能运维

Linux 日志突然变大(例如 /var/log 下某个文件迅速膨胀)通常由以下几类原因导致。我按最常见 → 较少见给你梳理,并给出排查方法。


一、最常见原因

1. 应用程序疯狂打日志(最普遍)

  • 程序进入死循环 / 异常分支
  • 线上故障导致大量 ERROR / WARN 日志
  • 调试日志(debug)误开

✅ 排查:

ls -lh /var/log
du -sh /var/log/* | sort -h

再看具体文件:

tail -f /var/log/xxx.log

2. 日志轮转(logrotate)失效

  • logrotate 没执行
  • 配置错误(如 copytruncate 没加)
  • 服务持有着旧文件句柄,导致文件删了但空间没释放

✅ 排查:

ps aux | grep logrotate
ls -l /etc/logrotate.d/

✅ 手动触发:

logrotate -fv /etc/logrotate.conf

3. 日志文件被删除但进程仍占用(“幽灵文件”)

这是经典坑

  • 日志文件被 rm
  • 但服务还在写
  • df 显示空间满,ls 却看不到大文件

✅ 排查:

lsof | grep deleted

✅ 解决:

  • 重启相关服务
  • > 文件 清空而非删

4. 系统级日志异常

  • systemd / journald 爆量
  • 内核频繁报错(磁盘、网络、驱动)

✅ 查看:

journalctl -p err -b
du -sh /var/log/journal

✅ 限制 journal 大小:

# /etc/systemd/journald.conf
SystemMaxUse=500M

二、服务或配置问题

5. 某个服务配置错误

  • Nginx / Apache 重写规则死循环
  • 中间件(Redis、Kafka、MySQL)异常

✅ 示例:

tail -f /var/log/nginx/error.log

6. cron / 定时任务失控

  • 脚本每分钟跑一次但失败
  • 输出未重定向,全进 mail / syslog

✅ 排查:

crontab -l
/var/log/cron

三、外部或安全问题(需警惕)

7. 被攻击或入侵

  • 被扫端口、爆破 SSH
  • 恶意程序写日志混淆视听

✅ 检查:

/var/log/secure
/var/log/auth.log
last

8. 磁盘或硬件问题

  • 磁盘坏道导致内核反复报错
  • RAID 卡异常

✅ 看内核日志:

dmesg | tail

四、快速定位“谁在写”

# 实时看哪个文件在涨
watch -n 1 'du -sh /var/log/* | sort -h'

# 看谁在写文件(需安装 audit 或 fatrace)
fatrace

五、一般处理建议

  1. 先别急着删
  2. 定位来源(du + tail + lsof
  3. 修复程序或配置
  4. 配置 logrotate
  5. 限制 journal / 日志级别

如果你愿意,可以告诉我:

  • 哪个日志文件变大(/var/log/xxx
  • 系统版本(CentOS / Ubuntu)
  • 是否有 docker / k8s

我可以直接帮你精准定位原因

0