服务器磁盘没满但服务写不进日志,我是怎么查的
有次值班遇到一个很迷惑的问题:应用报警说无法写入日志,但 df -h 看磁盘还有 30% 空间,服务重启也没用。开发那边以为是权限问题,运维这边看目录权限也正常。后来我查 df -i 才发现 inode 用完了,原因是某个临时目录堆了几十万个小文件,logrotate 也没覆盖到这类文件。 处理过程比较朴素:先用 find 按目录统计文件数量,确认问题目录;再停掉生成临时文件的 job,批量清理过期文件;最后把 systemd timer、tmpfiles.d 和监控项一起补上。当天最大的坑不是清文件,而是别在高峰期一口气 rm 太多,IO 会被拖住。 给同行的建议是,磁盘告警不要只看容量,inode、写入权限、挂载只读、日志轮转都要一起查。runbook 里把命令写清楚,半夜值班能少走很多弯路。