温馨提示×

Debian日志为何不更新

小樊
42
2026-07-12 17:06:55
栏目: 智能运维

Debian 系统日志不更新,通常不是“日志坏了”,而是日志服务没在跑、日志被重定向、磁盘/权限问题,或者日志轮转把文件清空了。下面按最常见原因逐条排查。


一、先确认日志服务是否在运行

Debian 主流使用 systemd + journald,也可能用 rsyslog

1️⃣ 检查 systemd-journald

systemctl status systemd-journald

✅ 正常应显示 active (running)
❌ 如果没运行:

sudo systemctl start systemd-journald
sudo systemctl enable systemd-journald

2️⃣ 如果使用 rsyslog

systemctl status rsyslog

没运行就启动:

sudo systemctl start rsyslog
sudo systemctl enable rsyslog

二、确认日志是否真的“没更新”

1️⃣ 看 journal 日志

journalctl -f

如果能看到实时日志,说明日志是更新的,只是你没看对地方。


2️⃣ 看传统日志文件

ls -lh /var/log/syslog
ls -lh /var/log/messages

如果文件大小为 0 或很久没变,继续往下看。


三、最常见原因(重点)

✅ 原因 1:日志被 journald 接管,/var/log/syslog 不再更新

Debian 默认 rsyslog 可能未安装

检查:

dpkg -l | grep rsyslog

如果没有:

sudo apt update
sudo apt install rsyslog
sudo systemctl enable --now rsyslog

✅ 原因 2:磁盘满了(最常见)

df -h

如果 //var 是 100%:

journalctl --vacuum-size=100M

或删除旧日志。


✅ 原因 3:inode 用尽

df -i

inode 满了也会导致日志无法写入。


✅ 原因 4:日志权限错误

ls -ld /var/log
ls -l /var/log/syslog

正常应类似:

-rw-r----- 1 root adm

修复:

sudo chown root:adm /var/log/syslog
sudo chmod 640 /var/log/syslog
sudo systemctl restart rsyslog

✅ 原因 5:日志被轮转后未重新打开

logrotate 后 rsyslog 没重启:

sudo systemctl restart rsyslog

✅ 原因 6:journal 被限制或关闭

查看配置:

cat /etc/systemd/journald.conf

重点看:

Storage=auto
# 或
Storage=persistent

如果:

Storage=none

不会保存任何日志

修复:

Storage=persistent

然后:

sudo systemctl restart systemd-journald

四、快速自检清单(推荐)

依次执行:

systemctl status systemd-journald
systemctl status rsyslog
df -h
df -i
journalctl -f

五、如果你能补充这些信息,我可以精准定位

  1. Debian 版本(cat /etc/debian_version
  2. 所有日志都不更新,还是某个服务?
  3. /var/log/syslog 是否存在?
  4. 是服务器还是桌面?
  5. 最近是否做过升级或清理?

我可以直接告诉你是哪一条原因,不用你全试。

0