在 Debian 系统中,日志占满磁盘是常见问题,通常是由于 /var/log 下日志无限增长、 journald 不清理、或某个服务疯狂写日志导致。下面按紧急处理 → 根因排查 → 长期治理来说明。
df -h
du -sh /var/log/*
# 查看 journal 占用
journalctl --disk-usage
# 只保留最近 100MB
journalctl --vacuum-size=100M
# 或只保留最近 7 天
journalctl --vacuum-time=7d
# 看哪些文件最大
ls -lh /var/log
# 清空而不是删除(避免服务报错)
> /var/log/syslog
> /var/log/auth.log
⚠️ 不要直接
rm正在被进程占用的日志文件,否则空间不会释放
apt clean
rm -f /var/log/*.old
rm -f /var/log/*.[0-9]
watch -n 1 'du -sh /var/log/*'
lsof +L1 | grep deleted
iotop
编辑:
/etc/systemd/journald.conf
修改或添加:
SystemMaxUse=500M
MaxRetentionSec=7day
重启:
systemctl restart systemd-journald
确保日志轮转正常:
cat /etc/logrotate.conf
ls /etc/logrotate.d/
手动测试:
logrotate -d /etc/logrotate.conf
/etc/docker/daemon.json:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "50m",
"max-file": "3"
}
}
apt install monit
如果你愿意,可以贴一下:
df -h
du -sh /var/log/*
我可以帮你精确定位是哪一类日志导致的问题。