在 Debian 系统中,日志过大通常由 系统日志(rsyslog / syslog)、systemd journal(journalctl)、或 应用日志(如 Nginx、Docker) 引起。下面按常见场景给你一套实用处理方案。
# 查看各目录占用
du -sh /var/log/*
# 查看 journal 日志大小
journalctl --disk-usage
编辑配置文件:
sudo vim /etc/systemd/journald.conf
修改或添加:
[Journal]
SystemMaxUse=200M
SystemKeepFree=100M
MaxFileSec=1week
重启服务:
sudo systemctl restart systemd-journald
# 保留最近 7 天
sudo journalctl --vacuum-time=7d
# 或限制总大小
sudo journalctl --vacuum-size=200M
sudo truncate -s 0 /var/log/syslog
sudo truncate -s 0 /var/log/auth.log
⚠️ 不要用
rm,可能导致服务无法写入
Debian 默认有 logrotate,检查:
ls /etc/logrotate.d/
示例(/etc/logrotate.d/rsyslog):
/var/log/syslog
{
rotate 7
daily
missingok
notifempty
compress
delaycompress
postrotate
/usr/lib/rsyslog/rsyslog-rotate
endscript
}
手动执行测试:
sudo logrotate -d /etc/logrotate.conf
sudo logrotate -f /etc/logrotate.conf
docker system prune
限制日志大小(daemon.json):
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
sudo logrotate -f /etc/logrotate.d/nginx
# 实时查看日志增长
sudo tail -f /var/log/syslog
# 查看哪个进程在写
sudo lsof | grep /var/log
✅ 限制 journal 大小
✅ 开启并配置 logrotate
✅ 对 Docker / 应用日志设上限
✅ 定期清理而不是删除
如果你愿意,可以告诉我:
我可以直接帮你写一套定制配置。