Linux 服务器磁盘告警别慌:du/find 三步定位大文件并安全清理

举报
陈贻谐 发表于 2026/10/24 06:11:40 2026/10/24
【摘要】 上周半夜收到一条监控短信:服务器磁盘使用率超过 85%。登录一看,根分区只剩不到 2G,可用空间岌岌可危。新手最容易犯的错是看到大就删,万一删的是业务日志还没备份,或者正在被进程占用的文件,删了空间还不释放。本文分享一套安全流程,三步定位、确认后再清。第一步:先看大盘,确认是哪个分区满了。用 df -h 看每个挂载点的使用率和剩余空间,重点看 Use% 最高的那个。如果是 / 根分区满,问题...

上周半夜收到一条监控短信:服务器磁盘使用率超过 85%。登录一看,根分区只剩不到 2G,可用空间岌岌可危。新手最容易犯的错是看到大就删,万一删的是业务日志还没备份,或者正在被进程占用的文件,删了空间还不释放。本文分享一套安全流程,三步定位、确认后再清。

第一步:先看大盘,确认是哪个分区满了。用 df -h 看每个挂载点的使用率和剩余空间,重点看 Use% 最高的那个。如果是 / 根分区满,问题可能藏在 /var/log、/tmp 或 Docker 的 /var/lib/docker 里。

第二步:顺藤摸瓜找大目录。用 du -h --max-depth=1 /var 2>/dev/null | sort -hr | head -10,从最可疑的分区一级一级往下钻。比如发现 /var/lib/docker 占了 30G,就继续 du -h --max-depth=1 /var/lib/docker | sort -hr | head。sort -hr 按人类可读的单位排序,head 取前 10,大户一目了然。加 2>/dev/null 是为了屏蔽权限不足的报错噪音。

第三步:精准定位大文件。用 find /var/log -type f -size +500M -exec ls -lh {} \; 直接揪出大于 500M 的文件。找到目标后先别急着 rm,先做三件事:第一,用 lsof | grep <文件名> 确认有没有进程正在写它;第二,如果是日志,先 cp 备份一份到别处或压缩归档;第三,正在被占用的大日志不要直接删除,用 > 文件名 或 truncate -s 0 文件名 清空,这样进程句柄不断,空间立刻释放,也不会丢业务数据。

清理完再跑一遍 df -h 确认使用率降下来。最后建议顺手做两件事防复发:给 logrotate 配好日志轮转,避免日志无限膨胀;对 Docker 环境定期跑 docker system prune 清理悬空镜像和停止的容器。

磁盘满看似小事,半夜真能叫醒人。记住流程:df 定分区、du 找大户、find 揪文件,先备份再清空,别直接 rm。熟练之后,整个过程不到五分钟。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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