Debian 系统日志不更新,通常不是“日志坏了”,而是日志服务没在跑、日志被重定向、磁盘/权限问题,或者日志轮转把文件清空了。下面按最常见原因逐条排查。
Debian 主流使用 systemd + journald,也可能用 rsyslog。
systemctl status systemd-journald
✅ 正常应显示 active (running)
❌ 如果没运行:
sudo systemctl start systemd-journald
sudo systemctl enable systemd-journald
systemctl status rsyslog
没运行就启动:
sudo systemctl start rsyslog
sudo systemctl enable rsyslog
journalctl -f
如果能看到实时日志,说明日志是更新的,只是你没看对地方。
ls -lh /var/log/syslog
ls -lh /var/log/messages
如果文件大小为 0 或很久没变,继续往下看。
Debian 默认 rsyslog 可能未安装。
检查:
dpkg -l | grep rsyslog
如果没有:
sudo apt update
sudo apt install rsyslog
sudo systemctl enable --now rsyslog
df -h
如果 / 或 /var 是 100%:
journalctl --vacuum-size=100M
或删除旧日志。
df -i
inode 满了也会导致日志无法写入。
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
logrotate 后 rsyslog 没重启:
sudo systemctl restart rsyslog
查看配置:
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
cat /etc/debian_version)/var/log/syslog 是否存在?我可以直接告诉你是哪一条原因,不用你全试。