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

使用演示:

ncdu交互式界面截图

功能特点:

  • 交互式导航界面
  • 支持删除操作(需谨慎使用)
  • 可导出扫描结果

四、lsof:揪出被删除但仍占空间的文件

当df显示磁盘已满但du找不到大文件时:

$ lsof | grep deleted
apache2 1234 root 5r REG 8,1 2G 123456 /var/log/apache.log (deleted)

处理方案:

  1. 重启相关进程
  2. 清空或截断日志文件

五、自动化监控方案

创建每日检查脚本:

#!/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

掌握这些方法后,您将能够:

  1. 快速定位磁盘空间问题
  2. 预防存储耗尽导致的系统故障
  3. 制定合理的容量规划方案

建议将常用命令加入~/.bashrc别名,提升日常工作效率。


标签:
  • Linux磁盘空间
  • df命令
  • du命令
  • 莱卡云