Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux df 命令參數詳解與實戰用法:磁碟空間監控核心工具

編輯:Linux 教學

df(disk free)是查看文件系統空間使用情況的標準命令。本文詳細說明各參數含義、輸出欄位解讀、常用組合與實戰場景。

語法與核心參數

df [選項] [文件/目錄/設備...]
參數說明
-a, --all包含 0 塊的虛擬文件系統(/proc、/sys、/dev/pts 等)
-h, --human-readable人類可讀單位(K、M、G、T),基數 1024
-H, --siSI 單位(基數 1000),廠商標稱容量對齊
-k以 1K 塊顯示(默認)
-m以 1M 塊顯示
-i, --inodes顯示 inode 使用量而非空間
-T, --print-type顯示文件系統類型(ext4、xfs、nfs 等)
-t TYPE僅顯示指定類型
-x TYPE排除指定類型
-l, --local僅本地文件系統(排除 NFS/CIFS 等網路掛載)
-P, --portabilityPOSIX 輸出格式(不換行),腳本解析友好
--output=FIELD_LIST自定義輸出欄位(source、fstype、size、used、avail、pcent、target 等)

輸出欄位解讀(默認格式)

Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sda1        3020140    2333952    532772  82% /
none              213320          0    213320   0% /dev/shm
  • Filesystem:設備文件或遠程掛載源
  • 1K-blocks:總塊數(1K=1024 字節)
  • Used:已用塊數
  • Available:非特權用戶可用塊數(預留 5% 給 root)
  • Use%:使用率(基於總塊數)
  • Mounted on:掛載點

注意:Used + Available ≠ 1K-blocks,差值為 root 預留空間(tune2fs -m 5 調整)。

實戰常用組合

場景命令
快速概覽所有掛載點df -hT
僅看本地 ext4/xfs 分區df -hT -t ext4 -t xfs
排除虛擬文件系統df -h -x tmpfs -x devtmpfs -x squashfs
檢查 inode 耗盡風險df -hi
腳本解析(固定欄位)df -P /data | tail -1 | awk '{print $5}'
自定義輸出 JSON 友好格式df --output=source,fstype,size,used,avail,pcent,target -P

進階:監控腳本片段


#!/bin/bash
THRESHOLD=80
df -hP -x tmpfs -x devtmpfs | tail -n +2 | while read line; do
    usage=$(echo $line | awk '{print $5}' | sed 's/%//')
    mount=$(echo $line | awk '{print $6}')
    if [ "$usage" -ge "$THRESHOLD" ]; then
        echo "ALERT: $mount at ${usage}%" | mail -s "Disk Alert" admin@example.com
    fi
done

df vs du 差異

  • df:文件系統級,統計超級塊,含已刪除未釋放文件空間
  • du:目錄級,遍歷 inode 累加,不含已刪除未釋放空間
  • 差異大時:lsof | grep deleted 找出持有刪除文件的進程,重啟服務釋放
Copyright © Windows教程網 All Rights Reserved