Debian 下日志太大,一般不是“系统问题”,而是日志没清理、没轮转、或者服务疯狂打日志。可以按下面顺序排查和处理,从安全 → 根治一步步来。
sudo du -sh /var/log/*
常见大户:
/var/log/syslog/var/log/kern.log/var/log/messages/var/log/journal/(systemd 日志)journalctl --disk-usage
编辑:
sudo nano /etc/systemd/journald.conf
修改或取消注释:
[Journal]
SystemMaxUse=200M
RuntimeMaxUse=100M
然后重启:
sudo systemctl restart systemd-journald
✅ 这是最推荐、最干净的方式
sudo journalctl --vacuum-time=3d
或限制大小:
sudo journalctl --vacuum-size=100M
sudo rm -f /var/log/*.1 /var/log/*.gz
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 system prune -f
限制日志大小(推荐):
{
"log-driver": "json-file",
"log-opts": {
"max-size": "50m",
"max-file": "3"
}
}
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
或者告诉我: