Debian 系统日志为空,通常不是“系统没产生日志”,而是日志服务、存储路径或权限出了问题。下面按最常见原因逐一排查。
/var/log/syslog
/var/log/messages # 有些版本没有
/var/log/kern.log
/var/log/auth.log
查看方式:
ls -lh /var/log/
如果文件大小为 0,继续往下看。
Debian 使用 systemd-journald 作为日志核心。
journalctl
如果提示:
No journal files were found
说明 journal 日志未启用或已被清理。
journalctl --disk-usage
Debian 默认使用 rsyslog 写 /var/log/syslog。
dpkg -l | grep rsyslog
sudo apt update
sudo apt install rsyslog
sudo systemctl enable rsyslog
sudo systemctl start rsyslog
✅ 安装后稍等片刻,日志就会开始生成。
systemctl status systemd-journald
如果未运行:
sudo systemctl enable systemd-journald
sudo systemctl start systemd-journald
查看配置:
cat /etc/systemd/journald.conf
重点看:
Storage=auto
如果是:
Storage=none
或
Storage=volatile
修改为:
Storage=persistent
然后重启:
sudo systemctl restart systemd-journald
检查是否有 0 字节文件:
ls -lh /var/log/syslog
如果是人为清空:
sudo truncate -s 0 /var/log/syslog
✅ 这是“正常但危险”的操作,之后日志会重新写入。
df -h
df -i
如果 /var 或 / 满了,日志无法写入。
如果你在:
这些环境 默认没有日志服务。
✅ 解决方法:
# 1. 日志服务
systemctl status rsyslog
systemctl status systemd-journald
# 2. 日志文件
ls -lh /var/log/syslog
# 3. journal
journalctl --disk-usage
# 4. 磁盘
df -h
你可以贴出以下信息(任意一项即可):
cat /etc/debian_version)/var/log/syslog 是否存在systemctl status rsyslog 输出我可以直接告诉你是哪一条原因 ✅