Linux查看磁盘空间:吃透2条核心命令,彻底看懂占用
Linux查磁盘空间根本不用记一堆复杂指令,日常运维、排查服务器卡顿、清理冗余文件,只需要熟练掌握两条核心命令,就能搞定99%的磁盘查看场景。很多人磁盘爆满报警、程序运行报错,都搞不清空间到底被谁占用了,到底是整体磁盘不足,还是某个文件夹偷偷占满了存储?
先分清两个核心场景,这是查磁盘的关键。df 看整块磁盘分区的整体占用,du 看具体文件夹、文件的大小明细,两者分工完全不同,混用只会越查越乱。
df:快速全盘体检,看磁盘是否爆满
df是最基础的磁盘查询命令,主打一个快速高效,能直接列出服务器所有磁盘分区的总容量、已用空间、剩余空间和占用比例。新手最推荐的用法是 df -h,-h 参数的作用是人性化显示单位,自动换算GB、MB,不用自己换算枯燥的字节数值。
终端执行命令后,每行对应一个分区,重点只需要看最后一列的挂载点和使用率。只要使用率超过90%,服务器大概率会出现卡顿、日志写入失败、网站打不开等问题。
之前踩过一个很坑的雷。运维一台业务服务器时,df查看磁盘使用率98%,系统持续弹窗报警,下意识以为是业务文件太多,批量删除了老旧日志。结果空间只释放了2G,报警依旧没停。后来才发现,根分区爆满,但我一直删的是挂载在/data分区的文件,完全删错了位置。
定位错分区,全是无用功。
du:精准溯源,找出占用大户
当df查到磁盘爆满,却不知道具体文件在哪时,就该du命令上场了。它可以逐层统计文件夹、单个文件的占用大小,精准揪出拖垮磁盘的“元凶”。
日常最实用的指令是 du -sh * ,放在当前目录执行,就能列出该文件夹下所有子文件、子文件夹的总大小。s 代表汇总统计,不会无限递归展示细碎文件,h 依旧是人性化单位显示,星号代表遍历当前所有内容。
很多人会犯一个低级错误,直接用du不加参数查询。终端会瞬间刷屏,列出成千上万个细碎文件的大小,密密麻麻根本找不到重点,完全浪费排查时间。
效率极低。
想要深度排查,还可以用 du -h --max-depth=1,限制只展示一级目录的大小,层级清晰,不会混乱。如果想找出最大的十个文件,搭配排序指令 du -sh * | sort -rh,一键从大到小排序,超大文件一眼就能看到。
磁盘排查的完整实操流程
给大家整理一套万能排查步骤,服务器磁盘报警直接套用,零出错。
- 第一步,df -h 全局扫描,确认是哪个分区占用过高,锁定爆满的挂载目录。
- 第二步,cd 进入对应分区目录,用 du -sh * 查看一级文件大小,定位大文件夹。
- 第三步,逐层进入超大文件夹,重复du查询,精准找到无用的缓存、过期日志、冗余安装包。
- 第四步,确认文件无用后,批量清理,清理后再用df -h复查空间释放情况。
这里补充一个冷门但超实用的知识点。磁盘显示爆满,有可能不是真的文件太多,而是文件被删除但进程未释放。比如正在运行的程序日志文件被手动删除,磁盘空间不会立刻释放,依旧占用存储。
遇到这种情况,再怎么删文件都没用,必须重启对应占用进程,或者直接重启服务器,才能彻底释放空间。
不用死记硬背所有参数。日常工作中,记住df -h查全局、du -sh * 查明细,配合逐层排查的思路,足以应对所有Linux磁盘空间查看、爆满清理场景。下次遇到磁盘报警,直接按这套步骤逐条执行即可。