Linux 磁盘满了先别删:从定位、确认到安全清理的完整排查流程

举报
yd_214683010 发表于 2026/10/28 11:07:51 2026/10/28
【摘要】 磁盘满了不要先删文件:先用 df 看挂载点与 inode,再逐层定位最大占用,区分日志、缓存、备份与业务数据,留证据、可回滚地清理,最后用告警与日志轮转预防复发。

磁盘告警往往来得突然:部署写不进文件、数据库拒绝写入、日志停更,第一反应是删文件腾空间。但在生产机上,删错一个正在被写入的文件、删掉还没归档的日志,损失可能比磁盘满本身更大。本文给出一套先定位、再确认、最后清理的流程,目标是花最少的时间恢复写入,同时不制造二次事故。

第一步,先看整体,别急着进目录。df -h 能告诉你哪块盘满了、使用率是多少、挂载点是哪里;df -i 同样重要,因为文件数量耗尽时,即使还有空间也写不进文件,这类问题在大量小文件的缓存、会话目录里很常见。把这两个结果记下来,再决定往哪个挂载点深入,不要凭感觉在根目录里翻。

第二步,用分层定位代替全盘扫描。du -sh 目录可以逐层下钻,先看一级目录,再进最大的那一个;如果目录很深、文件很多,用 du 结合排序会更直观。需要提醒的是,刚删除的大文件如果仍被进程占用,空间并不会立刻释放,这时用 lsof 查看被删除但仍打开的文件,往往比继续删文件更有效。正确做法通常是重启相关进程或让其重新打开日志,而不是反复删除。

第三步,区分四类常见占用,再决定动作。第一类是日志:先看是否可以轮转、压缩或归档,确认保留期限后再清理旧文件,不要直接清空正在写入的日志文件。第二类是临时文件和缓存:先确认它们是否可重建,构建缓存、下载缓存一般可以重建,但正在进行的任务产物要先确认。第三类是数据库与备份:备份文件不要因为体积大就随手删,先核对备份策略和最近一次成功备份的时间。第四类是应用数据:用户上传、导出文件、消息队列堆积都属于业务数据,删除前必须和业务方确认。

第四步,清理要留证据、可回滚。先把待删除的清单列出来,包括路径、大小、最后修改时间和归属服务;能移动到临时目录先观察一段时间,就不要直接永久删除;删除后立刻用 df 复核,并检查服务是否恢复写入、日志是否继续增长。一次只做一类清理,做完验证再做下一类,这样一旦出问题也知道是哪一步引起的。

第五步,恢复之后做三件预防工作。第一是给关键目录设告警阈值,例如使用率到百分之八十就提醒,而不是等到百分之百才处理。第二是给日志做轮转和保留策略,避免单个日志文件无限增长。第三是定期复盘占用增长最快的目录,把临时清理变成固定动作,例如每周检查一次缓存目录和备份目录。

最后记住一个原则:磁盘满是症状,不是病因。日志暴涨可能来自重复报错,缓存暴涨可能来自失败重试,备份堆积可能来自清理任务失效。清理腾出空间只是第一步,顺着最大的占用找到产生它的服务和任务,才算真正解决问题。下次再收到磁盘告警时,先定位、再确认、最后清理,你就不会在深夜因为删错文件而再写一份故障复盘。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。