温馨提示×

debian日志怎样去清理

小樊
38
2026-10-01 03:41:02
栏目: 智能运维

在 Debian 系统中,日志通常由 rsyslog / syslog-ng、systemd-journald 以及各类应用(如 nginx、mysql)产生。下面按常见场景给你一套安全、可控的清理方法。


一、最常见、最推荐方式:logrotate(自动清理)

Debian 默认已安装 logrotate,它会自动轮转+压缩+删除旧日志。

查看日志轮转配置

ls /etc/logrotate.d/
cat /etc/logrotate.conf

手动强制执行一次

logrotate -f /etc/logrotate.conf

✅ 一般不需要手动删日志,靠 logrotate 即可


二、清理 systemd 日志(journalctl)

查看 journal 占用

journalctl --disk-usage

清理方法(推荐)

1️⃣ 按时间清理(保留最近 7 天)

journalctl --vacuum-time=7d

2️⃣ 按大小清理(保留 500MB)

journalctl --vacuum-size=500M

3️⃣ 永久限制 journal 大小(推荐)

编辑:

sudo vim /etc/systemd/journald.conf

修改或添加:

SystemMaxUse=500M
MaxRetentionSec=7day

然后重启:

sudo systemctl restart systemd-journald

三、清理 /var/log 下的旧日志

查看日志大小

du -sh /var/log/*

手动清理(谨慎)

sudo rm -f /var/log/*.log.*
sudo rm -f /var/log/syslog.*

⚠️ 不要直接删正在写入的日志文件(如 syslog)
应先用 truncate:

sudo truncate -s 0 /var/log/syslog

四、清理 apt / 安装缓存日志

sudo apt clean
sudo apt autoremove
sudo rm -rf /var/log/apt/*

五、特殊服务日志清理示例

Nginx

sudo truncate -s 0 /var/log/nginx/access.log
sudo truncate -s 0 /var/log/nginx/error.log

MySQL / MariaDB

sudo rm -f /var/log/mysql/*.log

六、不推荐的做法 ❌

❌ 直接 rm -rf /var/log
❌ 删除正在被进程占用的日志文件(空间不会释放)


七、推荐最佳实践 ✅

✅ 使用 logrotate
✅ 限制 journal 大小
✅ 定期 apt clean
✅ 用 truncate 而不是 rm


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

  • Debian 版本(11 / 12?)
  • 是 服务器还是桌面
  • 日志爆满的具体目录或文件

我可以给你定制清理方案。

0 踩