导语: 深夜时分,手机突然疯狂震动,监控群弹出刺眼的告警:“磁盘使用率 100%,服务宕机!” 揉着惺忪的睡眼登录服务器,面对茫茫文件,你是否曾感到无从下手? 别慌!今天我们就来聊聊 Linux 磁盘排查的“双子星”—— df 与 **du**。掌握它们,让你彻底告别“空间焦虑”。
💡 核心心法:宏观与微观的碰撞
在 Linux 的世界里,排查磁盘问题只需要记住一句话:df 看宏观,du 看微观。
- 🌍
df (Disk Free):就像卫星地图。它站在上帝视角,告诉你整个磁盘分区(小区)的总容量、已用空间和剩余空间。 - 🔍
du (Disk Usage):就像入户查水表。它深入目录内部,精确计算每一个文件夹和文件(每家每户)到底占了多少地儿。
🛰️ 第一招:df —— 掌控全局的“卫星地图”
df 是评估系统整体健康状况的第一站。
🛠️ 常用参数锦囊
-h (human-readable):绝对的主力。以 K、M、G 等人类可读的格式显示,告别枯燥的字节数。-i (inodes):隐藏的救命稻草。查看 inode 使用情况(后文会讲为什么它很重要)。-T (type):显示文件系统类型(如 ext4, xfs, overlay)。
💻 实战演练
# 1. 最常用:查看所有挂载分区的空间概览
df -h
# 2. 精准打击:只查看特定目录(如 /mnt)所在分区的空间
df -h /mnt
# 3. 深度体检:查看 inode 使用情况(排查“假满”必备)
df -i
🔍 第二招:du —— 抽丝剥茧的“空间侦探”
当 df 告诉你“磁盘满了”之后,接下来就该 du 出场,找出真正的“空间杀手”。
🛠️ 常用参数锦囊
-s (summarize):只显示总计,不罗列子目录,适合看单个目录的总大小。-h (human-readable):配合 -s 使用,输出 M、G 等直观单位。--max-depth=N:防刷屏神器。限制目录遍历的深度,1 表示只看当前目录下的第一层。
💻 实战演练
# 1. 查看当前目录下,每个子目录/文件的大小
du -sh *
# 2. 限制深度,只看 /mnt 下的第一层目录大小
du -sh --max-depth=1 /mnt/*
# 3. 找出当前目录下最大的 10 个文件(包含子目录)
du -ah . | sort -rh | head -n 10
🌟 高阶秘籍:排查空间的“黄金组合”
在实际排查中,单用 du 会输出成百上千行,让人眼花缭乱。资深运维通常会祭出以下这套 “黄金组合拳”:
du -sh /mnt/* 2>/dev/null | sort -hr | head -n 10
🧩 拆解这条“咒语”:
du -sh /mnt/*:计算 /mnt 下所有第一层目标的大小。2>/dev/null:将“权限不足”等报错扔进黑洞,保持输出清爽。| (管道符):像工厂流水线一样,把前一步的结果传给下一步。sort -hr:进行排序。-h 能智能识别 M、G 单位,-r 表示倒序(从大到小)。head -n 10:只截取前 10 行,直接锁定“十大空间杀手”。
👻 避坑指南:Linux 磁盘的两大“灵异事件”
很多新手会遇到这样的崩溃瞬间:明明 df 和 du 看到的数据对不上! 别怀疑人生,通常是遇到了以下两种情况:
🕳️ 灵异事件一:“幽灵文件”(删了,但没完全删)
现象:df -h 显示磁盘 100% 满了,但用 du 把所有目录加起来,却远远没满。真相:你确实用 rm 删除了大文件,但是后台进程(如 Hive、YARN、Docker)仍然在持有该文件的句柄。在 Linux 中,只要进程不释放,磁盘空间就不会真正归还。破局:
# 1. 揪出这些“幽灵”
lsof +L1 | grep deleted
# 2. 重启占用这些文件的进程(或直接重启服务),空间瞬间释放!
🏷️ 灵异事件二:“Inode 耗尽”(有地皮,没门牌)
现象:df -h 显示磁盘还有几十 G 空间,但创建新文件时却无情地提示 No space left on device。真相:磁盘的物理空间(Block)还有,但是用来记录文件元数据的 Inode(索引节点)用光了。这通常是因为系统里生成了海量的小文件(比如几百万个几 KB 的临时文件)。破局:
# 1. 用 df -i 确认是否 inode 耗尽
df -i
# 2. 找出并批量删除那些海量小文件
find /path/to/dir -type f -delete
📝 结语
从宏观的 df 到微观的 du,再到管道符的巧妙组合,以及应对“灵异事件”的底层逻辑,掌握这套组合拳,Linux 下 99% 的磁盘空间问题都将对你敞开大门。
下次再遇到磁盘告警,不妨泡杯咖啡,从容地敲下这几行命令吧。☕
👇 互动时间你在排查磁盘问题时,还遇到过哪些“坑”?或者有什么独门的排查小技巧?欢迎在评论区留言交流!
如果这篇文章对你有帮助,别忘了点个 【在看】 和 【赞】,分享给更多需要的小伙伴哦! ❤️