Linux如何查看磁盘空间使用情况?
常见问题
Linux如何查看磁盘空间使用情况?
2025-05-01 03:55
5种高效方法:Li
5种高效方法:Linux系统如何查看磁盘空间使用情况
作为Linux系统管理员或开发人员,掌握磁盘空间管理是必备技能。本文将详细介绍5种专业级方法,帮助您全面监控磁盘使用情况,预防存储危机。
一、df命令:基础但强大的磁盘分析工具
df -h是最常用的磁盘空间检查命令:
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 20G 5.8G 13G 32% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
参数说明:
- -h:人性化显示(自动转换GB/MB单位)
- -T:显示文件系统类型
- -i:查看inode使用情况而非磁盘块
二、du命令:深度目录扫描专家
当需要定位具体目录的空间占用时:
$ du -sh /var/log/*
24M /var/log/auth.log
1.2G /var/log/syslog
高级用法组合:
# 找出/home下最大的5个目录
$ du -h /home | sort -rh | head -5
三、ncdu:终端可视化分析神器
安装命令:
$ sudo apt install ncdu # Debian/Ubuntu
$ sudo yum install ncdu # CentOS/RHEL
使用演示:
功能特点:
- 交互式导航界面
- 支持删除操作(需谨慎使用)
- 可导出扫描结果
四、lsof:揪出被删除但仍占空间的文件
当df显示磁盘已满但du找不到大文件时:
$ lsof | grep deleted
apache2 1234 root 5r REG 8,1 2G 123456 /var/log/apache.log (deleted)
处理方案:
- 重启相关进程
- 清空或截断日志文件
五、自动化监控方案
创建每日检查脚本:
#!/bin/bash
THRESHOLD=90
CURRENT=$(df / | awk 'NR==2{print $5}' | sed 's/%//')
if [ "$CURRENT" -gt "$THRESHOLD" ]; then
echo "警报!根分区使用率 ${CURRENT}%" | mail -s "磁盘警报" admin@example.com
fi
进阶方案:
- 配置Zabbix/Grafana监控
- 设置logrotate自动轮转日志
- 使用LVM实现动态扩容
疑难问题排查指南
现象
可能原因
解决方案
df和du统计不一致
文件被删除但进程仍持有
使用lsof检查并重启相关服务
磁盘已满但找不到大文件
小文件占满inode
df -i 检查inode使用率
扩容后空间未更新
文件系统未resize
resize2fs/xfs_growfs
掌握这些方法后,您将能够:
- 快速定位磁盘空间问题
- 预防存储耗尽导致的系统故障
- 制定合理的容量规划方案
建议将常用命令加入~/.bashrc别名,提升日常工作效率。
5种高效方法:Linux系统如何查看磁盘空间使用情况
作为Linux系统管理员或开发人员,掌握磁盘空间管理是必备技能。本文将详细介绍5种专业级方法,帮助您全面监控磁盘使用情况,预防存储危机。
一、df命令:基础但强大的磁盘分析工具
df -h是最常用的磁盘空间检查命令:
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 20G 5.8G 13G 32% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
参数说明:
- -h:人性化显示(自动转换GB/MB单位)
- -T:显示文件系统类型
- -i:查看inode使用情况而非磁盘块
二、du命令:深度目录扫描专家
当需要定位具体目录的空间占用时:
$ du -sh /var/log/* 24M /var/log/auth.log 1.2G /var/log/syslog
高级用法组合:
# 找出/home下最大的5个目录 $ du -h /home | sort -rh | head -5
三、ncdu:终端可视化分析神器
安装命令:
$ sudo apt install ncdu # Debian/Ubuntu $ sudo yum install ncdu # CentOS/RHEL
使用演示:
功能特点:
- 交互式导航界面
- 支持删除操作(需谨慎使用)
- 可导出扫描结果
四、lsof:揪出被删除但仍占空间的文件
当df显示磁盘已满但du找不到大文件时:
$ lsof | grep deleted apache2 1234 root 5r REG 8,1 2G 123456 /var/log/apache.log (deleted)
处理方案:
- 重启相关进程
- 清空或截断日志文件
五、自动化监控方案
创建每日检查脚本:
#!/bin/bash
THRESHOLD=90
CURRENT=$(df / | awk 'NR==2{print $5}' | sed 's/%//')
if [ "$CURRENT" -gt "$THRESHOLD" ]; then
echo "警报!根分区使用率 ${CURRENT}%" | mail -s "磁盘警报" admin@example.com
fi
进阶方案:
- 配置Zabbix/Grafana监控
- 设置logrotate自动轮转日志
- 使用LVM实现动态扩容
疑难问题排查指南
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| df和du统计不一致 | 文件被删除但进程仍持有 | 使用lsof检查并重启相关服务 |
| 磁盘已满但找不到大文件 | 小文件占满inode | df -i 检查inode使用率 |
| 扩容后空间未更新 | 文件系统未resize | resize2fs/xfs_growfs |
掌握这些方法后,您将能够:
- 快速定位磁盘空间问题
- 预防存储耗尽导致的系统故障
- 制定合理的容量规划方案
建议将常用命令加入~/.bashrc别名,提升日常工作效率。
标签:
- Linux磁盘空间
- df命令
- du命令
- 莱卡云
