清理 Syslog 缓存/日志数据 的方法取决于你使用的 Linux 发行版、Syslog 实现(rsyslog / syslog-ng / journald)以及你所说的“缓存”具体指什么(日志文件、内存缓存、还是 systemd-journal)。下面按常见场景说明。
ps -ef | grep -E 'rsyslog|syslog-ng|systemd-journal'
常见情况:
du -sh /var/log/syslog
du -sh /var/log/messages
✅ 推荐方式
sudo truncate -s 0 /var/log/syslog
sudo truncate -s 0 /var/log/messages
或:
sudo > /var/log/syslog
不会中断 rsyslog 服务
sudo rm -f /var/log/syslog.*
sudo rm -f /var/log/messages.*
Linux 默认已配置日志轮转,不要手动乱删。
cat /etc/logrotate.d/rsyslog
sudo logrotate -f /etc/logrotate.conf
如果你指的是 systemd 日志缓存:
journalctl --disk-usage
sudo journalctl --vacuum-size=100M
sudo journalctl --vacuum-time=7d
编辑:
sudo vim /etc/systemd/journald.conf
设置:
SystemMaxUse=200M
RuntimeMaxUse=100M
重启:
sudo systemctl restart systemd-journald
rsyslog 默认 没有用户可感知的“缓存”,如果你是指:
可尝试:
sudo systemctl restart rsyslog
如果是 Docker 容器日志:
docker system prune
或限制日志大小:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
}
}
✅ 生产环境
rm -rf /var/loglogrotate 或 journalctl --vacuum✅ 排查问题前
| 目的 | 命令 |
|---|---|
| 清空 syslog | truncate -s 0 /var/log/syslog |
| 删除旧日志 | rm /var/log/syslog.* |
| journal 清理 | journalctl --vacuum-size=100M |
| 重启 rsyslog | systemctl restart rsyslog |
| 日志轮转 | logrotate -f /etc/logrotate.conf |
如果你愿意,可以告诉我:
ubuntu 20.04 / centos 7 / 8)我可以给你 精确命令。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。