温馨提示×

Debian日志占用大怎么破

小樊
59
2026-08-11 12:05:34
栏目: 智能运维

Debian 下日志太大,一般不是“系统问题”,而是日志没清理、没轮转、或者服务疯狂打日志。可以按下面顺序排查和处理,从安全 → 根治一步步来。


一、先看看是谁在吃空间(必做)

sudo du -sh /var/log/*

常见大户:

  • /var/log/syslog
  • /var/log/kern.log
  • /var/log/messages
  • /var/log/journal/(systemd 日志)
  • 某个服务自己的日志(nginx、docker、mysql 等)

二、最安全:用 journalctl(systemd 日志)

1️⃣ 查看 journal 占用

journalctl --disk-usage

2️⃣ 限制 journal 大小(强烈推荐)

编辑:

sudo nano /etc/systemd/journald.conf

修改或取消注释:

[Journal]
SystemMaxUse=200M
RuntimeMaxUse=100M

然后重启:

sudo systemctl restart systemd-journald

这是最推荐、最干净的方式


三、手动清理旧日志(救急)

清理 systemd 日志(保留最近 3 天)

sudo journalctl --vacuum-time=3d

或限制大小:

sudo journalctl --vacuum-size=100M

四、传统 /var/log 日志处理

1️⃣ 删除旧日志(安全)

sudo rm -f /var/log/*.1 /var/log/*.gz

2️⃣ 清空正在写的日志(不删文件)

sudo truncate -s 0 /var/log/syslog
sudo truncate -s 0 /var/log/kern.log

⚠️ 不建议直接 rm 正在写入的日志,可能不释放空间


五、检查日志轮转(根本解决)

Debian 默认用 logrotate,但可能没生效。

查看配置

ls /etc/logrotate.d/

手动执行一次

sudo logrotate -vf /etc/logrotate.conf

如果有报错,说明配置有问题。


六、找出“疯狂打日志”的罪魁祸首

journalctl -p err -b

或:

grep -R "error" /var/log/

常见原因:

  • 网络异常
  • 磁盘满
  • Docker / nginx 配置错误
  • 某个服务死循环

七、Docker / Nginx / MySQL 日志特别处理

Docker

docker system prune -f

限制日志大小(推荐):

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "50m",
    "max-file": "3"
  }
}

Nginx

sudo truncate -s 0 /var/log/nginx/access.log
sudo truncate -s 0 /var/log/nginx/error.log

八、最稳妥的“长期方案” ✅

✅ 限制 journal 大小
✅ 确保 logrotate 正常
✅ 定期清理 Docker / 应用日志
✅ 不删正在写的日志文件


如果你愿意,可以把下面信息贴出来,我可以精准定位

df -h
du -sh /var/log/*
journalctl --disk-usage

或者告诉我:

  • Debian 版本
  • 是服务器还是桌面
  • 是否跑了 Docker / 网站 / 数据库

0