在 Linux 中清空 syslog 有多种方式,取决于你使用的是 rsyslog、syslog-ng 还是 systemd-journald。下面按常见情况说明,并给出安全做法。
ps -ef | grep -E 'rsyslog|syslogd|systemd-journal'
常见情况:
rsyslogd → rsyslogsystemd-journald → systemd 日志/var/log/messages /var/log/syslog → 传统 syslog 文件sudo truncate -s 0 /var/log/syslog
sudo truncate -s 0 /var/log/messages
✅ 优点:
cat /dev/nullsudo bash -c 'cat /dev/null > /var/log/syslog'
sudo bash -c 'cat /dev/null > /var/log/messages'
sudo rm /var/log/syslog
sudo systemctl restart rsyslog
⚠ 风险:
journalctl --disk-usage
sudo journalctl --vacuum-time=1s
或按大小:
sudo journalctl --vacuum-size=1M
sudo rm -rf /var/log/journal/*
sudo systemctl restart systemd-journald
⚠ 慎用,会丢失所有历史日志。
sudo truncate -s 0 /var/log/syslog
sudo truncate -s 0 /var/log/auth.log
sudo truncate -s 0 /var/log/kern.log
sudo truncate -s 0 /var/log/mail.log
sudo systemctl stop rsyslog
sudo systemctl disable rsyslog
⚠ 不建议生产环境使用,排查问题会非常困难。
✅ 清空 → 不关闭 → 不删除
sudo truncate -s 0 /var/log/syslog
✅ 定期轮转日志(比清空更好)
sudo logrotate -f /etc/logrotate.conf
✅ 会,只要文件还在。
可以,但一般用 logrotate 控制时间。
如果你愿意,可以告诉我:
我可以给你最精确的一条命令 ✅