温馨提示×

debian日志占用空间过大怎么办

小樊
48
2026-09-12 23:57:03
栏目: 云计算

在 Debian 系统中,日志占用空间过大通常是 systemd journal(/journald)rsyslog/logrotate应用日志 引起的。可以按下面步骤逐步排查和解决。


一、先确认日志在哪里占用空间

1. 查看整体磁盘使用

df -h

2. 找出大目录

du -sh /var/log/*

常见大日志位置:

  • /var/log/journal(systemd 日志)
  • /var/log/syslog
  • /var/log/auth.log
  • /var/log/nginx/var/log/mysql 等应用日志

二、清理 systemd journal 日志(最常见)

查看 journal 占用

journalctl --disk-usage

清理旧日志

# 保留最近 7 天
sudo journalctl --vacuum-time=7d

# 限制总大小为 500M
sudo journalctl --vacuum-size=500M

三、限制 journal 日志大小(推荐)

编辑配置:

sudo nano /etc/systemd/journald.conf

修改或添加:

SystemMaxUse=500M
SystemKeepFree=1G
MaxRetentionSec=7day

重启服务:

sudo systemctl restart systemd-journald

四、处理 /var/log 下的传统日志

1. 手动清理(谨慎)

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

2. 使用 logrotate

Debian 默认启用 logrotate:

sudo logrotate -d /etc/logrotate.conf   # 测试
sudo logrotate -f /etc/logrotate.conf   # 强制执行

五、限制 rsyslog 日志大小(可选)

编辑:

sudo nano /etc/logrotate.d/rsyslog

示例:

/var/log/syslog {
    size 100M
    rotate 4
    compress
    missingok
    notifempty
}

六、检查是否有程序疯狂写日志

查看实时日志

sudo tail -f /var/log/syslog

查看哪个服务最活跃

journalctl -p err -b

七、自动化防止再次发生

  • 开启 logrotate
  • 限制 journal 大小
  • 定期清理脚本(cron)

快速急救命令(总结)

journalctl --vacuum-time=7d
sudo rm -f /var/log/*.gz
sudo logrotate -f /etc/logrotate.conf

如果你愿意,可以贴一下:

du -sh /var/log/*
journalctl --disk-usage

我可以帮你精确判断是哪里的问题。

0