Debian 系统日志突然为空,通常不是“被删除了”这么简单,而是日志机制、存储位置或采集方式发生了变化。下面按最常见原因逐一说明,并给出排查方法。
Debian 新版本(尤其是 10+)默认使用 systemd journal,而不是 /var/log/messages、/var/log/syslog。
现象:
/var/log/syslog 为空或不存在ls /var/log 看不到内容排查:
journalctl
如果有日志,说明日志在 journal 中,而不是文本文件。
查看是否启用持久化:
ls /var/log/journal
启用持久化:
sudo mkdir -p /var/log/journal
sudo systemctl restart systemd-journald
传统日志由 rsyslog 写入。
检查:
systemctl status rsyslog
如果 inactive:
sudo systemctl enable --now rsyslog
确认是否安装:
dpkg -l | grep rsyslog
logrotate 可能在轮换时:
检查:
ls -lh /var/log
cat /etc/logrotate.d/rsyslog
日志写不进去,表现为“空”或停止增长。
检查:
df -h
df -i
如果 /var 或 / 满:
journalctl --vacuum-size=100M
rsyslog 或 journald 被配置为不记录某些日志。
检查:
cat /etc/rsyslog.conf
cat /etc/rsyslog.d/*.conf
# 1. 看 journal 是否有日志
journalctl -n 50
# 2. 看 rsyslog 状态
systemctl status rsyslog
# 3. 看磁盘
df -h
# 4. 看日志目录
ls -lh /var/log
Debian 日志突然为空,90% 是因为改用 journald 且未持久化,或 rsyslog 没运行。
如果你愿意,可以贴一下:
cat /etc/debian_version)journalctl 是否有内容我可以更精准判断。