基础语法
df [选项] [文件或目录]
- 不加参数时,显示所有已挂载文件系统的空间使用情况(默认以1K为单位)。
- 指定文件或目录时,显示其所在文件系统的信息。
常用选项详解
选项 | 作用 | 示例 |
---|---|---|
-h |
人类可读格式(自动转换单位:K/M/G) | df -h |
-T |
显示文件系统类型(如ext4、xfs) | df -T |
-i |
查看inode使用情况(而非磁盘空间) | df -i |
--total |
在末尾添加汇总行 | df -h --total |
-x TYPE |
排除指定类型的文件系统 | df -x tmpfs (排除临时文件系统) |
-t TYPE |
仅显示指定类型的文件系统 | df -t ext4 (仅显示ext4) |
实用场景示例
查看整体磁盘使用(推荐)
df -hT
输出示例:
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda1 ext4 20G 8.2G 11G 44% /
tmpfs tmpfs 1.6G 0 1.6G 0% /dev/shm
-h
:自动转换单位(G/M),避免手动计算。-T
:显示文件系统类型,便于排查问题。
监控inode使用(防“磁盘未满但无法写文件”问题)
df -i /home
输出:
文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/sdb1 524288 1200 523088 1% /home
- 当
已用(I)%
接近100%时,需清理无用小文件释放inode。
排除临时文件系统
df -h -x tmpfs -x devtmpfs
- 过滤
tmpfs
等内存文件系统,聚焦物理磁盘。
统计所有文件系统总使用量
df -h --total
末尾输出汇总行:
total 50G 30G 18G 63% -
常见问题解决
Q1:df
显示磁盘已满,但实际文件不大?
- 原因:可能被删除的文件仍被进程占用。
- 解决:重启相关进程或系统,或使用
lsof | grep deleted
查找占用的进程。
Q2:df
与du
结果不一致?
df
统计整个文件系统,du
计算当前目录下文件大小。- 若文件被删除但未释放(如日志文件被服务占用),
df
会显示已用空间,而du
不会计入。
最佳实践
- 定期监控:通过
cron
定时运行df -h
,结合邮件/告警通知。 - 关键目录检查:重点监控、
/home
、/var
等易满分区。 - 结合其他工具:
- 用
du -sh *
定位大文件。 - 用
lsblk
查看磁盘物理结构。
- 用
重要提示:生产环境操作前备份数据!误删文件可能导致服务不可恢复。
df
是Linux磁盘管理的核心命令:
- 日常使用首选
df -hT
。 - 排查存储异常时结合
-i
(inode)和-x
(过滤类型)。 - 结果异常时检查进程占用或隐藏大文件。
掌握df
可有效预防磁盘故障,确保系统稳定运行。
引用说明参考Linux man-pages项目(https://www.kernel.org/doc/man-pages/)及《鸟哥的Linux私房菜》基础篇,实践基于CentOS 7/Ubuntu 20.04测试验证。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6320.html