当前位置:首页 > Linux > 正文

Linux磁盘空间查看方法

在Linux中查看磁盘空间常用命令包括: ,1. df -h 显示磁盘分区使用情况(人类可读格式) ,2. du -sh [目录] 查看指定目录大小 ,3. 图形界面可使用系统自带工具(如GNOME的”磁盘”或KDE的”Filelight”)

基础命令:df(磁盘空间概览)

df(Disk Free)是查看文件系统整体使用情况的标准工具,属于GNU coreutils包的一部分。

df -h  # 推荐:以人类可读格式(GB/MB)显示
  • 关键参数
    • -h:自动转换单位(如KB→GB)
    • -T:显示文件系统类型(ext4, xfs等)
    • --total:汇总所有文件系统的总使用量
  • 输出解读
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda1        50G   32G   16G  67% /
    • Avail:剩余可用空间
    • Use%:使用百分比(≥80%需警惕)

目录级分析:du(目录空间详情)

du(Disk Usage)用于统计目录或文件的磁盘占用,同样属于GNU coreutils。

du -sh /home  # 查看/home目录总大小
du -h --max-depth=1 /var  # 扫描/var下一级子目录大小
  • 常用选项
    • -s:仅显示总大小(不递归子目录)
    • --max-depth=N:限制扫描深度
    • -a:显示所有文件(包括隐藏文件)
  • 排序大目录(结合sort):
    du -h /var | sort -rh | head -n 10  # 按大小降序显示前10项

交互式工具:ncdu(高效分析利器)

ncdu(NCurses Disk Usage)提供交互式界面,直观定位大文件。

  1. 安装
    sudo apt install ncdu  # Debian/Ubuntu
    sudo yum install ncdu  # CentOS/RHEL
  2. 使用
    ncdu /  # 扫描根目录
    • 操作指南
      • :导航目录
      • d:删除文件(需权限)
      • r:刷新统计

图形化工具(适合桌面用户)

  1. GNOME Disk Usage Analyzer(Baobab)

    Linux磁盘空间查看方法  第1张

    • 安装:sudo apt install baobab
    • 特点:环形图可视化,支持远程目录扫描。
  2. KDE Filelight

    • 安装:sudo apt install filelight
    • 特点:块状视图展示空间分布。

高级场景与技巧

  1. 监控特定文件类型
    查找超过100MB的日志文件:

    find /var/log -type f -size +100M -exec du -h {} ;
  2. 清理缓存(安全操作)

    sudo apt clean          # 清理APT缓存(Debian系)
    sudo journalctl --vacuum-size=200M  # 限制日志大小
  3. LVM/分区查看

    lsblk                   # 查看块设备结构
    vgs && lvs              # 显示LVM卷组和逻辑卷
  4. 挂载点空间异常检测
    df显示使用率100%,但du统计不足:

    • 可能原因:文件被删除但仍被进程占用。
    • 解决:重启相关服务或使用lsof | grep deleted定位进程。

自动化监控方案

  1. 定时任务(crontab)
    每周发送磁盘报告:

    echo "0 0 * * 0 df -h > /tmp/disk_report.txt" | crontab -
  2. 告警脚本示例(空间超85%时通知):

    #!/bin/bash
    ALERT=85
    df -H | grep -vE 'tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read output;
    do
      usep=$(echo $output | awk '{ print $1}' | cut -d'%' -f1)
      partition=$(echo $output | awk '{ print $2 }')
      if [ $usep -ge $ALERT ]; then
        echo "空间告警: $partition ($usep%)" | mail -s "磁盘空间不足" admin@example.com
      fi
    done

  • 日常巡检:优先使用 df -h 快速概览。
  • 定位大文件ncdudu | sort 深度分析。
  • 长期维护:设置自动化监控,定期清理日志/缓存。
  • 谨慎操作:删除文件前确认影响,避免误删系统关键数据。

引用说明: 基于GNU coreutils官方文档(https://www.gnu.org/software/coreutils/)及Linux man手册,命令行工具均通过实际环境验证,适用于主流的Linux发行版(Ubuntu, CentOS, Debian等)。

0