Ubuntu 中 syslog 为空(或 /var/log/syslog 没有内容 / 大小为 0)是常见问题,通常不是系统没日志,而是日志机制或配置发生了变化。下面按常见原因逐一说明和解决。
从 Ubuntu 16.04+(尤其 18.04 / 20.04 / 22.04) 开始:
/var/log/syslog 不再默认写入✅ 查看日志正确方式:
journalctl
journalctl -xe
journalctl -u nginx
/var/log/syslog 由 rsyslog 写入。
dpkg -l | grep rsyslog
如果没有:
sudo apt install rsyslog
systemctl status rsyslog
如果未运行:
sudo systemctl enable --now rsyslog
检查配置文件:
cat /etc/rsyslog.conf
cat /etc/rsyslog.d/50-default.conf
确保有类似内容:
*.*;auth,authpriv.none -/var/log/syslog
如果缺失,可手动添加并重启:
sudo systemctl restart rsyslog
df -h
ls -l /var/log/syslog
正常应是:
-rw-r----- 1 syslog adm
修复权限:
sudo chown syslog:adm /var/log/syslog
sudo chmod 640 /var/log/syslog
如果 journal 只在内存:
Storage=volatile
会导致重启后日志丢失。
检查:
grep Storage /etc/systemd/journald.conf
建议改为:
Storage=persistent
然后:
sudo systemctl restart systemd-journald
常见混淆:
| 文件 | 说明 |
|---|---|
/var/log/syslog |
rsyslog |
/var/log/messages |
某些版本无 |
journalctl |
真正系统日志 |
systemctl status rsyslog
ls -l /var/log/syslog
journalctl -n 50
df -h
如果你愿意,可以告诉我:
lsb_release -a)/var/log/syslog 是否存在但为空我可以给你更精确的原因和修复方案。