温馨提示×

linux syslog如何清理

小樊
85
2026-07-02 00:55:03
栏目: 智能运维

在 Linux 中,syslog 日志的清理需要区分你使用的是 rsyslogsyslog-ng 还是 systemd-journald。下面按常见场景说明。


一、使用 rsyslog(最常见)

1️⃣ 日志文件位置

通常在:

/var/log/

常见文件:

  • /var/log/syslog
  • /var/log/messages
  • /var/log/kern.log
  • /var/log/auth.log

2️⃣ 手动清理(不推荐直接 rm)

正确方式:清空日志内容

sudo truncate -s 0 /var/log/syslog

或:

sudo > /var/log/syslog

不建议直接删除

rm /var/log/syslog

可能导致 rsyslog 继续写入已删除的 inode,空间不释放。


3️⃣ 重启 rsyslog(清理后建议)

sudo systemctl restart rsyslog

二、使用 journalctl(systemd 日志)

1️⃣ 查看日志占用

journalctl --disk-usage

2️⃣ 按大小清理

sudo journalctl --vacuum-size=100M

3️⃣ 按时间清理

sudo journalctl --vacuum-time=7d

4️⃣ 立即清理(不重启)

sudo journalctl --rotate
sudo journalctl --vacuum-time=1s

三、使用 logrotate(推荐长期方案)

大多数 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

如果你愿意,可以告诉我:

  • 发行版(Ubuntu / CentOS / Debian)
  • 是否磁盘满了
  • /var/log 还是 journal 日志

我可以给你精确清理命令

0