Linux 日志写入失败是一个比较常见但原因多样的问题。下面按最常见原因 → 排查方法来系统说明。
日志写不进去,首先怀疑磁盘。
排查:
df -h
df -i # 看 inode 是否用满
典型现象:
No space left on device解决:
日志进程(如 rsyslog、appuser)没有写权限。
排查:
ls -l /var/log/xxx.log
ps aux | grep rsyslog
常见错误:
解决:
chown appuser:appuser /var/log/xxx.log
chmod 644 /var/log/xxx.log
比如 rsyslog / systemd-journald 挂了。
排查:
systemctl status rsyslog
systemctl status systemd-journald
journalctl -xe
解决:
systemctl restart rsyslog
日志文件被 rm,但进程还持有文件句柄。
现象:
df 显示空间没释放排查:
lsof | grep deleted
解决:
logrotate安全模块阻止写日志。
排查:
getenforce
ausearch -m avc -ts recent
解决:
setenforce 0
例如:
排查:
系统因错误进入只读模式。
排查:
mount | grep " / "
dmesg | tail
解决:
fsck -y /dev/sdX
df -h
df -i
ls -l /var/log
systemctl status rsyslog
journalctl -xe
lsof | grep deleted
你可以补充:
我可以直接帮你定位到具体原因。