在 Linux 中,syslog 日志一般不能直接删文件就完事,否则可能导致日志继续写入旧文件或权限异常。下面按常见情况给你几种正确清空 syslog 的方法。
truncate(推荐)sudo truncate -s 0 /var/log/syslog
✅ 优点:
> 重定向sudo > /var/log/syslog
或
sudo bash -c '> /var/log/syslog'
cat /dev/nullsudo cat /dev/null > /var/log/syslog
很多现代 Linux(Ubuntu 16.04+、CentOS 7+)使用 systemd journal
sudo journalctl --vacuum-size=1K
或
sudo journalctl --rotate
sudo journalctl --vacuum-time=1s
✅ 完全清空:
sudo rm -rf /var/log/journal/*
sudo systemctl restart systemd-journald
如果你只是想定期自动清理:
sudo logrotate -f /etc/logrotate.d/rsyslog
sudo systemctl restart rsyslog
或
sudo service rsyslog restart
⚠️ 会短暂中断日志
❌ 不要直接:
rm /var/log/syslog
可能导致:
✅ 正确做法:清空 ≠ 删除
#!/bin/bash
sudo truncate -s 0 /var/log/syslog
sudo journalctl --vacuum-size=1M
如果你告诉我:
rsyslog 还是 syslog-ng我可以给你更精确命令。