Linux显示磁盘空间情况——df命令详解与实战
一、命令定位与核心功能
df(Disk Free)命令是Linux系统磁盘管理的核心工具,主要用于实时监控文件系统空间使用情况。通过该命令可获取以下关键数据:
-
存储设备挂载点:文件系统挂载路径
-
容量分配:总空间、已用空间、可用空间
-
使用率分析:空间与索引节点(inode)使用百分比
-
文件系统类型:ext4/xfs/btrfs等格式识别
二、参数分类与功能解析
1. 信息显示控制
参数 | 功能说明 | 推荐场景 |
---|---|---|
-h | 人性化单位显示(自动换算) | 日常巡检 |
-H | 按1000进制换算单位 | 兼容SI标准 |
-T | 显示文件系统类型 | 存储格式分析 |
-i | 显示inode使用情况 | 小文件存储诊断 |
2. 筛选过滤参数
参数 | 功能说明 | 组合示例 |
---|---|---|
-t | 过滤指定文件系统类型 | df -t xfs |
-x | 排除指定文件系统类型 | df -x tmpfs |
-l | 仅显示本地文件系统 | 排除网络存储 |
3. 数据刷新与格式
参数 | 功能说明 | 特殊用途 |
---|---|---|
--sync | 强制同步后刷新数据 | 获取最新状态 |
--total | 显示汇总统计行 | 容量规划 |
三、典型应用场景演示
1. 全局磁盘空间概览
# 人性化显示所有挂载点(推荐)
df -h# 输出示例:
Filesystem Size Used Avail Use% Mounted on
/dev/nvme0n1p2 200G 45G 146G 24% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
2. 指定文件系统分析
# 查看/boot分区使用情况
df -h /boot# 筛选ext4格式分区
df -t ext4 -h
3. inode使用监控
# 检查索引节点状态
df -i /var# 典型输出:
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 65536 1424 64112 3% /var
4. 网络存储专项检查
# 排除临时文件系统
df -h -x tmpfs -x devtmpfs# 检查NFS挂载点
df -t nfs4
四、输出字段深度解析
字段 | 描述 | 关键指标 |
---|---|---|
Filesystem | 存储设备路径或分区标识 | 定位物理存储 |
Size | 总存储容量 | 容量规划依据 |
Used | 已使用空间 | 清理决策参考 |
Avail | 非root用户可用空间 | 用户存储限制 |
Use% | 空间使用百分比 | 预警阈值判断 |
Mounted on | 文件系统挂载路径 | 应用关联分析 |
五、高级技巧与最佳实践
1. 自动化监控脚本
#!/bin/bash
# 磁盘空间超过80%预警
THRESHOLD=80
df -h | awk -v ALERT=$THRESHOLD '
NR>1 {gsub(/%/,"",$5)if ($5 >= ALERT) print "警告: " $1 " 使用率 " $5 "%"
}'
2. 存储趋势分析
# 按使用率排序分区
df -h --output=source,pcent,target | sort -k2 -nr# 输出示例:
Filesystem Use% Mounted on
/dev/sda1 95% /data
/dev/nvme0n1p2 24% /
3. 容器环境适配
# 查看Docker容器存储使用
docker ps -q | xargs docker inspect --format='{{.GraphDriver.Data.Mountpoint}}' | xargs df -h
4. LVM存储分析
# 显示逻辑卷空间状态
df -h | grep -E '/dev/mapper|/dev/dm'
六、常见问题解决方案
1. 磁盘空间与inode耗尽
现象 | 检测命令 | 处理方案 |
---|---|---|
"No space left" | df -h | 清理大文件/扩容 |
"No inode left" | df -i | 删除碎片小文件 |
2. 挂载点异常排查
# 查看未挂载的分区
lsblk -f | grep -v MOUNTPOINT# 检查挂载配置
cat /etc/fstab | grep -v '^#'