在 Debian 系统中,日志通常由 rsyslog / syslog-ng、systemd-journald 以及各类应用(如 nginx、mysql)产生。下面按常见场景给你一套安全、可控的清理方法。
logrotate(自动清理)Debian 默认已安装 logrotate,它会自动轮转+压缩+删除旧日志。
ls /etc/logrotate.d/
cat /etc/logrotate.conf
logrotate -f /etc/logrotate.conf
✅ 一般不需要手动删日志,靠 logrotate 即可
journalctl --disk-usage
journalctl --vacuum-time=7d
journalctl --vacuum-size=500M
编辑:
sudo vim /etc/systemd/journald.conf
修改或添加:
SystemMaxUse=500M
MaxRetentionSec=7day
然后重启:
sudo systemctl restart systemd-journald
du -sh /var/log/*
sudo rm -f /var/log/*.log.*
sudo rm -f /var/log/syslog.*
⚠️ 不要直接删正在写入的日志文件(如 syslog)
应先用 truncate:
sudo truncate -s 0 /var/log/syslog
sudo apt clean
sudo apt autoremove
sudo rm -rf /var/log/apt/*
sudo truncate -s 0 /var/log/nginx/access.log
sudo truncate -s 0 /var/log/nginx/error.log
sudo rm -f /var/log/mysql/*.log
❌ 直接 rm -rf /var/log
❌ 删除正在被进程占用的日志文件(空间不会释放)
✅ 使用 logrotate
✅ 限制 journal 大小
✅ 定期 apt clean
✅ 用 truncate 而不是 rm
如果你愿意,可以告诉我:
我可以给你定制清理方案。