在Linux系統中,了解硬碟使用量對於系統管理非常重要。硬碟使用量表示硬碟上已使用和可用的空間。我們可以使用 df
指令來快速檢查這些信息,並確保系統不會耗盡硬碟空間。
硬碟使用量的重要性
了解硬碟使用量的重要性在於:
- 避免硬碟耗盡:確保硬碟不會因為空間不足而導致系統運作不順暢。
- 警示問題:及早發現硬碟使用量異常增加的情況,可能是應用程式產生了大量日誌或暫存檔案。
為什麼需要使用 df 指令?
df
指令可以讓我們快速檢查硬碟使用情況,包括各個檔案系統的使用量和剩餘空間。現在,讓我們來看看如何使用它。
使用df指令檢查硬碟使用量
基本的df指令語法
df
文件系統 1K-區塊 已用 可用 已用% 掛載點
/dev/sda1 10240000 4500000 5240000 47% /
/dev/sdb1 20480000 8800000 10600000 46% /data
這個基本指令將顯示系統上所有檔案系統的硬碟使用情況。
- 文件系統(Filesystem):這是檔案系統的名稱或路徑,它表示硬碟上的特定區域或分割。
- 1K-區塊(1K-Blocks):這個數值表示文件系統的總容量,以1K(1千字節)的區塊數量來表示。在例子中,第一個文件系統有10240000個1K區塊的容量。
- 已用(Used):這是文件系統中已經被使用的區塊數量,以1K區塊計算。在例子中,已經使用了4500000個1K區塊。
- 可用(Available):這表示文件系統中剩餘的可用區塊數量,以1K區塊計算。在例子中,還有5240000個1K區塊可用。
- 已用%(Used Percentage):這是已用區塊的百分比,它表示已使用容量占總容量的比例。在例子中,已用了47%的容量。
- 掛載點(Mounted on):這是文件系統被掛載(連接)的路徑或目錄。它表示這個文件系統在系統中的位置。在例子中,第一個文件系統掛載在根目錄(
/
)下。
常見的選項和參數
參數 | 描述 |
---|---|
-a | 顯示所有文件系統,包括虛擬文件系統 |
-h | 以方便閱讀的方式顯示文件系統大小(MB、GB等) |
-l | 只顯示本地文件系統 |
-t <文件系統類型> | 只顯示指定類型的文件系統 |
-T | 顯示檔案系統類型 |
使用 -a
參數顯示所有文件系統,包括虛擬文件系統:
df -a
文件系統 1K-區塊 已用 可用 已用% 掛載點
/dev/sda1 10240000 4500000 5240000 47% /
tmpfs 512000 10240 501760 2% /dev/shm
/dev/sdb1 20480000 8800000 10600000 46% /data
...
使用 -h
參數以方便閱讀的方式顯示文件系統大小(MB、GB等):
df -h
文件系統 容量 已用 可用 已用% 掛載點
/dev/sda1 10G 4.3G 5.0G 47% /
tmpfs 500M 10M 490M 2% /dev/shm
/dev/sdb1 20G 8.4G 10.2G 46% /data
...
使用 -l
參數只顯示本地文件系統:
df -l
文件系統 容量 已用 可用 已用% 掛載點
/dev/sda1 10G 4.3G 5.0G 47% /
/dev/sdb1 20G 8.4G 10.2G 46% /data
...
使用 -T
參數顯示檔案系統類型:
df -T
文件系統 類型 1K-區塊 已用 可用 已用% 掛載點
/dev/sda1 ext4 10240000 4500000 5240000 47% /
tmpfs tmpfs 512000 10240 501760 2% /dev/shm
/dev/sdb1 ext3 20480000 8800000 10600000 46% /data
...
使用 -t <文件系統類型>
參數只顯示指定類型的文件系統。假設您只想顯示 ext4 文件系統:
df -t ext4
文件系統 容量 已用 可用 已用% 掛載點
/dev/sda1 10G 4.3G 5.0G 47% /
...
這些選項使我們可以更詳細地檢查硬碟使用情況。現在,讓我們看看實際範例。
實際範例
使用df指令檢查整個系統的硬碟使用量
df -h /
文件系統 容量 已用 可用 已用% 掛載點
/dev/sda1 10G 4.3G 5.0G 47% /
查詢特定目錄或檔案系統的使用情況
df -h /data
文件系統 容量 已用 可用 已用% 掛載點
/dev/sdb1 20G 8.4G 10.2G 46% /data
檢查硬碟使用量的定期任務
你可以將df
指令與定期排程工具(如cron)結合使用,以定期監控硬碟使用量,並記錄變化。
紀錄使用量
- 首先,打開終端並使用以下命令編輯 cron 設定文件:
sudo crontab -e
- 在 cron 設定文件中,您可以添加一個新的任務行。以下是一個例子,設定每天定期檢查硬碟使用量並將結果附加到一個日誌文件中:
0 0 * * * df -h >> /var/log/disk_usage.log
這個 cron 任務的解釋如下:
0 0 * * *
:這是 cron 的時間設定,它表示每天的午夜(0點0分)執行該任務。df -h
:這是要執行的命令,它使用-h
參數以人類可讀的方式顯示硬碟使用量。>> /var/log/disk_usage.log
:這部分將命令的輸出附加到指定的日誌文件/var/log/disk_usage.log
中。
- 保存並關閉 cron 設定文件。
這樣,每天午夜時,系統將自動執行 df -h
指令並將結果附加到 /var/log/disk_usage.log
文件中。您可以根據需要調整 cron 任務的時間和日誌文件的位置。通过查看此日誌文件,您可以隨時監控硬碟使用量的變化。
超過 80% 使用量主動寄信通知
若您希望在硬碟使用量超過80%時收到通知,您可以結合使用 df
和郵件通知工具,例如 mail
或 sendmail
,以設定一個 cron 任務。以下是如何實現這個目標的一個例子:
- 首先,確保您的系統上已經安裝郵件發送工具,例如
mail
。如果未安裝,您可以使用適用於您的Linux發行版的包管理器進行安裝。 - 使用
crontab -e
命令編輯 cron 設定文件。 - 在 cron 設定文件中,您可以添加以下的 cron 任務行,假設您希望每天的午夜檢查硬碟使用量並發送通知:
0 0 * * * used=$(df -h / | awk 'NR==2 {print $5}' | sed 's/%//'); if [ "$used" -gt 80 ]; then echo "硬碟使用量超過80%,目前為 $used%" | mail -s "硬碟警報" your_email@example.com; fi
讓我們解釋這個 cron 任務:
0 0 * * *
:這是 cron 的時間設定,表示每天的午夜(0點0分)執行該任務。used=$(df -h / | awk 'NR==2 {print $5}' | sed 's/%//')
:這一行使用df -h /
命令來獲取根文件系統的使用百分比(去掉百分比符號),並將其存儲在used
變數中。if [ "$used" -gt 80 ]; then
:這個條件語句檢查硬碟使用量是否大於80%。echo "硬碟使用量超過80%,目前為 $used%" | mail -s "硬碟警報" your_email@example.com
:如果使用量大於80%,則發送郵件通知到指定的郵箱地址,其中包含警報信息。
- 保存並關閉 cron 設定文件。
現在,當硬碟使用量超過80%時,您將收到一封包含警報信息的郵件通知。請確保替換 your_email@example.com
為您的實際郵箱地址,以便接收通知。
- 中文參考資料:
- 英文參考資料: