在 Linux 中,syslog 日志的清理需要区分你使用的是 rsyslog、syslog-ng 还是 systemd-journald。下面按常见场景说明。
通常在:
/var/log/
常见文件:
/var/log/syslog/var/log/messages/var/log/kern.log/var/log/auth.log✅ 正确方式:清空日志内容
sudo truncate -s 0 /var/log/syslog
或:
sudo > /var/log/syslog
❌ 不建议直接删除
rm /var/log/syslog
可能导致 rsyslog 继续写入已删除的 inode,空间不释放。
sudo systemctl restart rsyslog
journalctl --disk-usage
sudo journalctl --vacuum-size=100M
sudo journalctl --vacuum-time=7d
sudo journalctl --rotate
sudo journalctl --vacuum-time=1s
大多数 Linux 发行版已自动配置。
cat /etc/logrotate.d/rsyslog
sudo logrotate -f /etc/logrotate.conf
sudo find /var/log -type f -name "*.log" -exec truncate -s 0 {} \;
或更激进(不推荐):
sudo rm -rf /var/log/*
⚠️ 可能导致服务异常或审计问题。
| 场景 | 推荐方式 |
|---|---|
| 临时释放空间 | truncate -s 0 |
| systemd 日志 | journalctl --vacuum |
| 长期自动管理 | logrotate |
| 生产环境 | 不要直接 rm |
如果你愿意,可以告诉我:
/var/log 还是 journal 日志我可以给你精确清理命令。