先使用df -h和df -i检查磁盘及inode使用情况,再通过du -sh *和find定位大文件,重点清理/var/log日志及/tmp临时文件,结合journalctl和logrotate管理日志,最后用lsof +L1查找未释放的删除文件。

磁盘空间不足是Linux系统运维中常见的问题,及时排查和清理能避免服务中断。以下是一套实用的排查流程,帮助快速定位问题根源。
检查整体磁盘使用情况
使用df命令查看各挂载点的磁盘使用情况,重点关注使用率较高的分区。
常用命令:
- df -h:以人类可读的方式显示磁盘使用情况(KB、MB、GB)
- df -i:查看inode使用情况,避免因inode耗尽导致无法创建新文件
若发现某个分区使用率接近100%,需进一步进入该分区定位大文件或目录。
定位占用空间大的目录和文件
进入使用率高的挂载点后,使用du命令分析目录占用。
常用方法:
- du -sh *:查看当前目录下各子目录和文件的总大小
- du -h --max-depth=1 /path:按指定深度统计目录占用,便于逐层排查
- du -ah /path | sort -rh | head -20:列出指定路径下最大的20个文件或目录
注意隐藏文件和日志目录(如/var/log),它们常被忽略但可能占用大量空间。
检查并清理日志文件
系统和服务日志是磁盘爆满的常见原因,特别是/var/log目录下的日志。
处理建议:
- 查看大日志文件:find /var/log -type f -size +1G
- 使用journalctl管理systemd日志:journalctl --disk-usage 查看日志占用,journalctl --vacuum-time=7d 清理7天前的日志
- 定期轮转日志:确保logrotate服务正常运行
- 清空大日志文件时,建议使用> filename.log而非直接删除,避免服务因文件句柄未释放仍占用空间
查找并处理临时或无用文件
系统运行过程中可能遗留大量临时文件。
可检查以下位置:
- /tmp 和 /var/tmp:清理长时间未访问的临时文件
- 用户家目录下的缓存:~/.cache
- 已卸载但句柄未释放的文件:使用lsof +L1查找被删除但仍被进程占用的文件
- 旧的内核包或缓存:使用apt autoremove(Debian系)或dnf autoremove(RHEL系)清理
基本上就这些。掌握df、du、find等基础命令,结合对系统目录结构的理解,大多数磁盘空间问题都能快速解决。关键是要养成定期检查和日志管理的习惯,避免问题积累。










