Linux 磁盘满了:只读排查清单
按安全顺序排查 Linux 磁盘满:定位文件系统、检查字节与 inode、整理可见目录、记录扫描缺口,并在清理前确认负责人。
直接回答
先确认哪个已挂载文件系统已满,以及短缺的是数据块还是 inode;再扫描同一文件系统,把可见目录占用与容量对照,调查差额,最后才复核服务专用的保留或清理流程。
适用场景
- 服务报告“No space left on device”。
- df 显示某个挂载点接近 100%。
- 删除明显的大文件后,空闲空间没有按预期恢复。
分步骤复核
确认文件系统
读取已挂载文件系统容量,并把报错路径映射到对应挂载点。
检查数据块和 inode
字节容量与 inode 是两套限制,任何一个耗尽都可能写入失败。
扫描同一文件系统的可见路径
让范围与挂载点一致,不跨入无关挂载,查看最大目录和文件。
解释差额
如果可见合计明显小于文件系统占用,要考虑无权路径、已删除但仍打开的文件、被挂载覆盖的内容、快照、元数据和保留空间。
交给所属服务处理
采用该服务记录的保留、轮转、软件包、数据库、容器或备份流程,不要做通用递归删除。
相关技术原理
从报错路径出发
一台主机可能有多个文件系统;如果应用写入独立数据盘,扫描 / 可能浪费时间或混入无关合计。
inode 耗尽是另一类故障
文件系统即使还有字节,也可能因 inode 用尽而无法创建新文件;目录大小无法单独诊断。
df 与 du 的大差额本身就是证据
两者测量不同层级;出现差额应触发针对性检查,而不是认定其中一个错误。
时间压力会放大清理风险
生产磁盘已满时,先记录当前证据并与服务负责人协调,再修改活动数据。
只读信号及其含义
| 信号 | 回答的问题 | 重要限制 |
|---|---|---|
| 文件系统字节 | 哪个挂载点容量不足? | 不能定位具体路径。 |
| 文件系统 inode | 文件记录是否已耗尽? | 字节占用不高也不能排除。 |
| 目录合计 | 哪个可见目录层级较大? | 看不到无权和已解除链接的文件。 |
| 最大文件 | 哪些可见普通文件最大? | 大不代表可以移除。 |
| 快照差值 | 两次扫描间哪些匹配路径增长? | 需要两次可比较的完整扫描。 |
风险与不应执行的操作
不要盲删活动日志
进程可能继续持有已解除链接的文件,直接删除还可能破坏轮转或审计保留。
不要以为 sudo 能解决诊断
提权会扩大可见范围和风险,却不能说明数据归属或安全保留期。
不要比较不匹配的扫描
主机、根路径、挂载模式不同或扫描不完整,都会产生误导差值。
Omuuz 产品能做什么、不能做什么
能够做到
SSH Disk Visualizer 可以在一次只读排查中展示挂载容量、可见目录、大项、完整性警告、分类和匹配快照增长。
不能做到
它不能检查所有内核层原因、诊断每种文件系统、重启服务、关闭打开句柄、更改保留策略或自动释放空间。