Linux 磁盘空间入门:df、du 查满盘,删之前先定位再动手

举报
yd_286960584 发表于 2026/11/05 10:55:50 2026/11/05
【摘要】 很多新手第一次遇到满盘,表现都一样:网站报错、后台进不去,第一反应是重启服务器。重启完还是不行,才发现磁盘已经 100% 了。磁盘满了之后,数据库写不进数据、日志写不进文件、上传也存不下来,服务看着像挂了,其实根子在空间上。所以排查的第一步永远是先看空间,而不是先重启。先用 df -h 看整盘。-h 是按 G、M 这种人能读的单位显示,重点看 Use% 和挂载点那一列:根目录 / 到了 90...

很多新手第一次遇到满盘,表现都一样:网站报错、后台进不去,第一反应是重启服务器。重启完还是不行,才发现磁盘已经 100% 了。磁盘满了之后,数据库写不进数据、日志写不进文件、上传也存不下来,服务看着像挂了,其实根子在空间上。所以排查的第一步永远是先看空间,而不是先重启。

先用 df -h 看整盘。-h 是按 G、M 这种人能读的单位显示,重点看 Use% 和挂载点那一列:根目录 / 到了 90% 以上就要警惕,100% 就是已经满了。还有一个容易漏的指标是 inode,用 df -i 看:磁盘空间明明还有,文件却写不进去,多半是小文件太多把 inode 占满了,日志碎片、缓存碎片都可能造成这种情况。

知道盘满了,接下来用 du 找是谁占的。du -sh /var/log/* 是看某个目录下各子项各占多少,-s 是只汇总一层,别一上来就 du 整盘,那样要扫很久。从根目录一层层往下钻最快:先看 /var、/home、/www 哪个大,再进那个目录继续看子目录,两三层就能定位到罪魁祸首。想直接看最大的十个,可以用 du -sh 目录/* | sort -rh | head -10 排个序,大的排在前面,一眼就能看到。

新手最常见的三类大户,处理方法各不一样。第一是日志:网站访问日志、错误日志、系统日志,跑久了不清理会越滚越大。清理前先看一眼是不是还在疯狂增长——如果错误日志每分钟都在涨,删了还会再涨,要先修掉报错的源头。已经确认没用的旧日志可以直接删,但正在被程序写着的日志文件别直接 rm:程序还握着文件句柄,删了空间也不释放,正确做法是清空内容(echo > 文件名),或者重启对应服务后再删。

第二是备份和上传文件:站点备份、数据库备份、用户上传的图片和附件,都是越攒越多的东西。备份的原则是只留最近几份、并且至少一份放在服务器之外——只放本机的备份,服务器一挂备份也跟着没了,等于没备。上传目录里先按时间和大小排,确认是废弃的旧文件再删,别按目录一锅端。

第三是缓存和临时文件:包管理缓存、程序缓存、/tmp 下的临时文件,删之前先确认程序不在用它们。正在运行的服务依赖的缓存删了可能要重启才能恢复,动手前先停掉相关服务或者选业务低峰期操作。

最后说一个好习惯,和前面几篇是连着的:日志那篇讲了日志长什么样、服务管理那篇讲了怎么重启服务、Cron 那篇讲了怎么定时做重复的事——把“每天凌晨查一次磁盘、超过 85% 就发提醒、每周清一次旧日志”写成 Cron 任务,满盘就从救火变成了例行检查。清理完别忘了再跑一次 df -h,确认 Use% 真的降下来了,再顺手打开网站、登录后台看一次,都正常才算收尾。

总结一下:满盘排查就是三句话,df 看整盘、du 往下钻、删之前先确认这东西是不是在用、是不是唯一一份。先定位再动手,比上来就删快得多,也安全得多。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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