在Linux系統中,了解硬碟使用量對於系統管理非常重要。硬碟使用量表示硬碟上已使用和可用的空間。我們可以使用 df 指令來快速檢查這些信息,並確保系統不會耗盡硬碟空間。

硬碟使用量的重要性

了解硬碟使用量的重要性在於:

  • 避免硬碟耗盡:確保硬碟不會因為空間不足而導致系統運作不順暢。
  • 警示問題:及早發現硬碟使用量異常增加的情況,可能是應用程式產生了大量日誌或暫存檔案。

為什麼需要使用 df 指令?

df 指令可以讓我們快速檢查硬碟使用情況,包括各個檔案系統的使用量和剩餘空間。現在,讓我們來看看如何使用它。

使用df指令檢查硬碟使用量

基本的df指令語法

df
文件系統         1K-區塊      已用    可用     已用% 掛載點
/dev/sda1        10240000  4500000  5240000   47% /
/dev/sdb1        20480000  8800000 10600000   46% /data

這個基本指令將顯示系統上所有檔案系統的硬碟使用情況。

  1. 文件系統(Filesystem):這是檔案系統的名稱或路徑,它表示硬碟上的特定區域或分割。
  2. 1K-區塊(1K-Blocks):這個數值表示文件系統的總容量,以1K(1千字節)的區塊數量來表示。在例子中,第一個文件系統有10240000個1K區塊的容量。
  3. 已用(Used):這是文件系統中已經被使用的區塊數量,以1K區塊計算。在例子中,已經使用了4500000個1K區塊。
  4. 可用(Available):這表示文件系統中剩餘的可用區塊數量,以1K區塊計算。在例子中,還有5240000個1K區塊可用。
  5. 已用%(Used Percentage):這是已用區塊的百分比,它表示已使用容量占總容量的比例。在例子中,已用了47%的容量。
  6. 掛載點(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)結合使用,以定期監控硬碟使用量,並記錄變化。

紀錄使用量

  1. 首先,打開終端並使用以下命令編輯 cron 設定文件:
sudo crontab -e
  1. 在 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 中。
  1. 保存並關閉 cron 設定文件。

這樣,每天午夜時,系統將自動執行 df -h 指令並將結果附加到 /var/log/disk_usage.log 文件中。您可以根據需要調整 cron 任務的時間和日誌文件的位置。通过查看此日誌文件,您可以隨時監控硬碟使用量的變化。

超過 80% 使用量主動寄信通知

若您希望在硬碟使用量超過80%時收到通知,您可以結合使用 df 和郵件通知工具,例如 mailsendmail,以設定一個 cron 任務。以下是如何實現這個目標的一個例子:

  1. 首先,確保您的系統上已經安裝郵件發送工具,例如 mail。如果未安裝,您可以使用適用於您的Linux發行版的包管理器進行安裝。
  2. 使用 crontab -e 命令編輯 cron 設定文件。
  3. 在 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%,則發送郵件通知到指定的郵箱地址,其中包含警報信息。
  1. 保存並關閉 cron 設定文件。

現在,當硬碟使用量超過80%時,您將收到一封包含警報信息的郵件通知。請確保替換 your_email@example.com 為您的實際郵箱地址,以便接收通知。





主頁 » LINUX » 實用技巧 » 如何自動檢查寄信通知 Linux 空間容量?使用量 df 指令教學與 crontab 搭配範例說明

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *