syslog、daemon.log 占用大量空间

今天突然发现服务器宕机了,本以为是调试的的脚本有问题

用下面命令查看发现是 /var 的占用太大了

1
du -sh /* 2>/dev/null

查看日志大小,后就判断是syslog、daemon.log 的问题

1
ls -lh /var/log/

随后发现这一篇博文

里面告诉了解决方法,但是说的不详细,就去问了大模型

修改 /etc/rsyslog.conf 的日志级别来减少 syslogdaemon.log 的占用空间

1. 调整日志级别

原配置(Debian 默认):

1
2
*.*;auth,authpriv.none          -/var/log/syslog
daemon.* -/var/log/daemon.log

目标:将日志级别限制为 info 及以上(即不记录更低级别的 debug),从而减少日志量。

修改方法

  • **对于 syslog**:

    1
    *.=info;auth,authpriv.none    -/var/log/syslog

    此配置表示仅记录所有服务的 info 级别日志(*.=info),并排除 authauthpriv 的日志(auth,authpriv.none)。

  • **对于 daemon.log**:

    1
    daemon.=info                  -/var/log/daemon.log

    此配置表示仅记录 daemon 服务的 info 级别日志。如需记录更多,用下面的形式添加

    1
    daemon.=info;daemon.err;daemon.warning;daemon.crit;daemon.alert;daemon.emerg   -/var/log/daemon.log

2.保存文件后,重启 rsyslog 服务使配置生效:

1
sudo systemctl restart rsyslog

3. 补充优化方法

(1) 日志轮转(Logrotate)

通过 /etc/logrotate.conf/etc/logrotate.d/rsyslog 配置日志切割策略,例如:

1
2
3
4
5
6
7
8
9
10
/var/log/syslog
/var/log/daemon.log {
daily # 每日轮转
rotate 7 # 保留7份旧日志
compress # 压缩旧日志
delaycompress # 延迟压缩(避免与正在写入的日志冲突)
missingok # 文件缺失不报错
notifempty # 空文件不轮转
size 100M # 文件达到100M时强制轮转
}

此配置可避免单个日志文件过大

总结

通过限制日志级别(如仅记录 info 及以上)、配置日志轮转策略,可有效减少 syslogdaemon.log 的空间占用。若问题依然存在,需进一步排查是否有程序持续输出冗余日志或日志服务异常