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)是 Linux 系統管理員監控檔案系統磁碟使用量的核心工具。它從核心層面讀取超級區塊資訊,回報各掛載點的總容量、已用、可用空間及使用率。掌握 df 進階參數,能快速定位磁碟爆滿風險、規劃擴容時機,並排查 inode 耗盡導致的「明明有空間卻無法寫入」詭異故障。

語法格式

df [選項]... [檔案/目錄]...

核心參數速查表

參數長參數功能說明
-h--human-readable以人類易讀單位顯示(K、M、G、T),最常用
-H--si同 -h,但以 1000 為進位單位(廠商標示法)
-i--inodes顯示 inode 使用量而非區塊使用量
-T--print-type顯示檔案系統類型(ext4、xfs、nfs 等)
-t--type=類型僅顯示指定檔案系統類型
-x--exclude-type=類型排除指定檔案系統類型(如排除 tmpfs、devtmpfs)
-l--local僅顯示本地檔案系統,略過網路掛載(NFS、CIFS)
-P--portabilityPOSIX 輸出格式,確保跨平台腳本解析穩定
--sync執行前先 sync 刷新快取,數據最新但較慢
--block-size=大小自訂區塊大小(如 --block-size=1M)

實戰範例

1. 日常巡檢:人類易讀 + 檔案系統類型

$ df -hT
檔案系統      類型      容量  已用  可用  使用率  掛載點
/dev/vda1     ext4       50G   28G   20G    59%  /
tmpfs         tmpfs     3.9G     0  3.9G     0%  /dev/shm
/dev/vdb1     xfs       100G   45G   55G    45%  /data
192.168.1.10:/share nfs4   500G  200G  300G    40%  /mnt/nfs

2. 排查 inode 耗盡(大量小檔案場景)

$ df -hi
檔案系統      Inode 已用(I) 可用(I) 使用率  掛載點
/dev/vda1      320M    310M     10M     97%  /
/dev/vdb1      500M     50M    450M     10%  /data

對策:若根目錄 inode 使用率 >90%,需清理大量小檔案(如快取、session、日誌)或重新格式化調大 inode 比例(mkfs.ext4 -i 2048)。

3. 腳本友善輸出:POSIX 格式 + 指定掛載點

$ df -P /data
Filesystem     1024-blocks      Used Available Capacity Mounted on
/dev/vdb1        104857600  47185920  57671680      45% /data

4. 排除虛擬檔案系統,專注實體磁碟

df -h -x tmpfs -x devtmpfs -x overlay

進階應用:自動化告警腳本片段

#!/bin/bash
THRESHOLD=85
ALERT_DIR="/data /var/log /home"

for dir in $ALERT_DIR; do
    usage=$(df -P "$dir" | awk 'NR==2 {print $5}' | sed 's/%//')
    if [ "$usage" -ge "$THRESHOLD" ]; then
        echo "⚠️ $dir 使用率 ${usage}% 超過閾值 ${THRESHOLD}%" | mail -s "磁碟告警: $HOSTNAME" admin@example.com
    fi
done

常見誤區與補充

  • df vs du:df 看檔案系統層面(含已刪除但進程仍持有的檔案),du 看目錄實際佔用。若 df 顯示滿但 du 很小,通常是進程持有已刪除檔案(lsof | grep deleted 找出並重啟進程釋放)。
  • 可用空間 vs 保留空間:ext4 預留 5% 給 root,df 顯示的「可用」已扣除保留空間。可用 tune2fs -m 1 /dev/vda1 調低保留比例。
  • Btrfs/ZFS:傳統 df 可能無法正確反映壓縮、去重、快照佔用,建議搭配原生工具(btrfs filesystem usage、zpool list)。

將 df -hT 加入每日巡檢腳本,配合 df -hi 定期檢查 inode,是守護 Linux 存儲健康的基礎動作。

Copyright © Windows教程網 All Rights Reserved