温馨提示×

Debian怎么清理系统日志

小樊
32
2026-07-12 12:18:45
栏目: 智能运维

在 Debian 系统中,清理系统日志主要有以下几种方式,取决于你使用的是 传统 syslog 还是 systemd-journald(现代 Debian 默认)。


一、清理 systemd 日志(journalctl)

Debian 8 及以后版本默认使用 systemd-journald 管理日志。

1. 查看当前日志占用空间

journalctl --disk-usage

2. 清理旧日志

保留最近 2 天日志

sudo journalctl --vacuum-time=2d

限制日志总大小(例如 100MB)

sudo journalctl --vacuum-size=100M

手动删除(不推荐)

sudo rm -rf /var/log/journal/*

⚠️ 删除后重启 journald:

sudo systemctl restart systemd-journald

二、限制 systemd 日志大小(推荐)

编辑配置文件:

sudo nano /etc/systemd/journald.conf

修改或添加:

[Journal]
SystemMaxUse=100M
RuntimeMaxUse=50M

然后重启:

sudo systemctl restart systemd-journald

三、清理 /var/log 下的传统日志

1. 查看日志大小

sudo du -sh /var/log/*

2. 清空单个日志文件(不删除文件)

sudo truncate -s 0 /var/log/syslog
sudo truncate -s 0 /var/log/kern.log

3. 删除旧日志(如 .gz、.1)

sudo rm -f /var/log/*.gz
sudo rm -f /var/log/*.[0-9]

四、使用 logrotate(自动清理,推荐)

Debian 默认已启用 logrotate

查看配置:

ls /etc/logrotate.d/

手动执行一次:

sudo logrotate -f /etc/logrotate.conf

五、清理 apt 缓存(顺带)

虽然不是日志,但常一起清理:

sudo apt clean
sudo apt autoclean

六、快速一键清理(常见组合)

sudo journalctl --vacuum-size=100M
sudo apt clean
sudo rm -f /var/log/*.gz

建议

  • 生产服务器:用 journalctl --vacuum + logrotate
  • ❌ 不建议直接 rm 正在写入的日志
  • ✅ 设置 journald.conf 限制大小更省心

如果你愿意,我可以帮你 判断当前系统用的是哪种日志系统,或给你一个 自动化清理脚本

0