用 Linux 指令快速檢查伺服器硬碟健康狀態

# 用 Linux 指令快速檢查伺服器硬碟健康狀態 做 IT 嘅朋友,成日都要面對一個問題:部伺服器個硬碟幾時會壞?與其等到佢突然死咗先發現,不如主動啲,定期用指令檢查硬碟健康狀態。今日就同大家分享幾個實用嘅 Linux 指令,等你可以及早發現硬碟問題,避免數據災難。 ## 點解要主動檢查硬碟健康狀態? 硬碟係伺服器入面最易壞嘅零件之一。根據 Backblaze 嘅統計,傳統機械硬碟(HDD)每年...

用 Linux 指令快速檢查伺服器硬碟健康狀態 - 文章重點速覽 infographic

# 用 Linux 指令快速檢查伺服器硬碟健康狀態

做 IT 嘅朋友,成日都要面對一個問題:部伺服器個硬碟幾時會壞?與其等到佢突然死咗先發現,不如主動啲,定期用指令檢查硬碟健康狀態。今日就同大家分享幾個實用嘅 Linux 指令,等你可以及早發現硬碟問題,避免數據災難。

## 點解要主動檢查硬碟健康狀態?

硬碟係伺服器入面最易壞嘅零件之一。根據 Backblaze 嘅統計,傳統機械硬碟(HDD)每年故障率大約 1-2%,而 SSD 雖然冇機械零件,但都有寫入壽命限制。如果等到硬碟真係壞咗先發現,輕則服務中斷,重則數據永久遺失。所以定期檢查硬碟健康狀態,係每個系統管理員嘅基本功。

## 用 smartctl 檢查硬碟健康狀態

`smartctl` 係最常用嘅硬碟健康檢查工具,佢可以讀取硬碟嘅 S.M.A.R.T.(Self-Monitoring, Analysis and Reporting Technology)數據。首先安裝佢:

sudo apt install smartmontools

安裝完之後,用以下指令檢查硬碟:

# 睇下系統有邊啲硬碟
lsblk

# 檢查指定硬碟嘅健康狀態
sudo smartctl -H /dev/sda

輸出會顯示 `PASSED` 或者 `FAILED`。如果係 `PASSED`,代表硬碟整體健康;如果係 `FAILED`,就要即刻備份數據同準備換碟。

## 睇詳細 S.M.A.R.T. 屬性

除咗簡單嘅健康狀態,仲可以睇詳細屬性:

sudo smartctl -a /dev/sda

呢度有幾個關鍵屬性要留意:

– **Reallocated_Sector_Ct**(重新分配磁區數):如果呢個數值持續上升,代表硬碟開始有壞磁區
– **Current_Pending_Sector**(待處理磁區):有讀寫錯誤但未處理嘅磁區
– **Wear_Leveling_Count**(SSD 磨損程度):SSD 專用,數值越低代表越接近壽命盡頭

## 用 dmesg 檢查硬碟錯誤

核心日誌都會記錄硬碟錯誤,用以下指令檢查:

sudo dmesg | grep -i -E "error|fail|sda"

如果見到大量 I/O error 或者 reset 訊息,就代表硬碟可能有問題。

## 定期自動檢查

可以設定 cron job 定期檢查:

# 編輯 crontab
sudo crontab -e

# 加入以下行,每日凌晨 3 點檢查
0 3 * * * smartctl -H /dev/sda | grep -q FAILED && echo "硬碟故障" | mail -s "警告" admin@example.com

## 總結

🔗 參考資料:NVD NIST 漏洞資料庫

定期檢查硬碟健康狀態,係防止數據災難嘅第一道防線。用 `smartctl` 配合 `dmesg`,再加埋 cron job 自動化,就可以及早發現問題。記住,硬碟壞之前通常都有徵兆,問題係你有冇主動去睇。