温馨提示×

为何Debian日志不更新了

小樊
42
2026-08-23 04:09:09
栏目: 智能运维

Debian 日志(如 /var/log/syslog/var/log/messages 等)不更新,通常不是“系统坏了”,而是 rsyslog/journald 服务、日志轮转或磁盘问题 导致的。下面按最常见原因逐条排查。


一、确认你用的是哪种日志系统

Debian 主流日志系统

  • Debian 8 以后:默认使用 systemd-journald
  • 同时常安装 rsyslog 来生成传统 /var/log/syslog

先确认:

dpkg -l | grep -E 'rsyslog|systemd'

二、rsyslog 没启动(最常见)

检查状态

systemctl status rsyslog

若未启动

sudo systemctl start rsyslog
sudo systemctl enable rsyslog

查看是否频繁退出

journalctl -u rsyslog

常见原因:

  • 磁盘满
  • 配置错误(修改 /etc/rsyslog.conf 后未重启)

三、systemd-journald 异常

检查 journal

journalctl -xe

查看服务状态

systemctl status systemd-journald

必要时重启:

sudo systemctl restart systemd-journald

四、磁盘满了(日志直接停止)

检查磁盘

df -h
df -i

常见情况

  • /var 100%
  • inode 用满(小文件太多)

清理旧日志

sudo journalctl --vacuum-time=7d

或手动清理:

sudo rm -f /var/log/syslog.1 /var/log/kern.log.1

五、logrotate 轮转后未重新打开日志文件(rsyslog Bug 常见)

现象

  • /var/log/syslog 存在
  • 但大小不变(0 或卡住)

解决

sudo systemctl restart rsyslog

或手动 reload:

sudo kill -HUP $(pidof rsyslogd)

六、日志被重定向或关闭了

检查 rsyslog 配置

grep -R "syslog" /etc/rsyslog.conf /etc/rsyslog.d/

确认没有:

*.* stop
*.* ~

这些会直接丢弃日志。


七、systemd 禁用了部分日志记录

查看 journal 模式

grep Storage /etc/systemd/journald.conf

若是:

Storage=none

则不会记录。

✅ 建议改为:

Storage=persistent

然后:

sudo systemctl restart systemd-journald

八、系统时间错乱(不常见但真实存在)

如果时间跳回过去:

timedatectl

修正:

sudo timedatectl set-ntp true

九、你是不是看错日志了?

现代 Debian:

  • syslog / messages → rsyslog(可能没装)
  • 真正完整的日志在:
journalctl

如果你只盯着 /var/log/syslog 看,而 rsyslog 没装,自然“不更新”。


✅ 快速诊断清单(复制执行)

df -h
systemctl status rsyslog
systemctl status systemd-journald
journalctl -xe | tail -n 20

如果你愿意,可以把以下信息发我,我可以精准定位:

  1. Debian 版本:cat /etc/debian_version
  2. 哪个日志不更新(路径)
  3. systemctl status rsyslog 输出
  4. df -h 输出

我可以一步一步帮你修。

0