一、查看整体磁盘分区挂载与空间(顶层概览)
1. df —— 查看挂载分区整体占用(最常用)
# 人性化单位显示 GB/MB(推荐)
df -h
# 包含所有文件系统(tmpfs、loop虚拟盘)
df -ha
# 只列出物理磁盘,排除虚拟文件系统
df -h --type=ext4 --type=xfs
# 输出磁盘使用率、挂载点,用于脚本
df -hP
参数说明:
-hhuman-readable 自动 G/M 单位-i查看 inode 使用量(磁盘有空间但无法新建文件常见原因!)
bash
df -hi
⚠️ 注意:df 统计整个分区,无法看目录大小。

二、查看目录 / 文件占用大小(定位大文件)
1. du — 统计文件夹、文件磁盘占用
bash
# 当前目录下一级目录大小(常用)
du -h --max-depth=1
# 指定目录
du -h --max-depth=1 /var/log
# 递归查看所有文件,排序,找出最大文件
du -ah /home | sort -hr | head -20
# 只统计目录,跳过文件
du -h --max-depth=2 /data
常用参数:
-h易读单位-ssummary 只汇总总和du -sh /opt--max-depth=N限制层级,避免刷屏-x不跨分区统计(非常重要!不会统计挂载在目录下其他磁盘)
示例快速查询:
bash
# 查看 /var 总大小
du -sh /var
2. 高效交互式磁盘分析工具(推荐运维)
ncdu(交互式磁盘浏览器,首选)
bash
# Debian/Ubuntu
apt install ncdu
# RHEL/CentOS/Rocky
dnf install ncdu
ncdu /
进入后方向键浏览,自动排序大目录,支持删除文件。
备选工具
dust:Rust 开发,更快的增强版 dugdmap:图形化磁盘占用图
三、查找大文件(磁盘爆满排查必备)
find 命令搜索大于指定大小文件
bash
# 查找 / 下大于1G的文件
find / -type f -size +1G -exec ls -lh {} \; 2>/dev/null
# 查找30天未访问的大文件
find /var/log -type f -size +500M -atime +30
四、区分:磁盘满的两种典型故障
磁盘容量满(df -h 100%) → 用 du/ncdu 清理大文件
inode 耗尽(df -hi IUse% 100%) → 大量极小垃圾文件,删除零碎日志文件
坑:直接 rm 删除正在被进程占用的日志文件,df 不会释放空间!
解决方案:清空文件而不删除
> /var/log/xxx.log或重启对应服务。
五、磁盘管理进阶操作
1. 挂载 / 卸载文件系统
bash
# 临时挂载
mount /dev/sdb1 /data
# 卸载
umount /data
# 强制卸载(谨慎)
umount -l /data
永久挂载写入 /etc/fstab
2. 磁盘块设备信息(裸盘信息,不看挂载)
bash
# 列出所有磁盘分区
lsblk
# 树形输出
lsblk -f
bash
# 查看硬盘硬件信息
fdisk -l
# parted 高级分区工具
parted -l
3. 文件系统检查修复
bash
# ext4 文件系统检查(必须先umount!)
e2fsck /dev/sdb1
# xfs 文件系统检查
xfs_repair /dev/sdb1

六、常用一键排查命令合集(直接复制使用)
bash
# 1. 全局磁盘概览
df -h
# 2. 检查inode
df -hi
# 3. 根目录一级目录大小
du -h --max-depth=1 / 2>/dev/null | sort -hr
# 4. 查找根目录最大20个文件
find / -type f -size +100M 2>/dev/null | xargs ls -lh | sort -k5hr | head -20
七、命令对比总结
原文链接
欢迎访问 小易撩挨踢