
# 用 Linux 指令快速檢查伺服器硬碟健康狀態
做 IT 嘅朋友,成日都要面對一個問題:部伺服器嘅硬碟幾時會壞?與其等佢突然死咗先發現,不如主動啲,定期用指令檢查硬碟健康狀態。今日就同大家分享幾個實用嘅 Linux 指令,等你可以喺問題發生之前就察覺到。
## 點解要主動檢查硬碟健康狀態
硬碟係伺服器入面最易壞嘅零件之一。根據 Backblaze 嘅統計,傳統機械硬碟(HDD)每年故障率大約 1% 到 2%,而 SSD 雖然冇機械結構,但都有寫入壽命限制。如果等到硬碟真係壞咗先發現,輕則服務中斷,重則數據全失。所以定期檢查硬碟健康狀態,係每個系統管理員嘅基本功。
## 用 smartctl 檢查硬碟健康狀態
`smartctl` 係最常用嘅工具,佢可以讀取硬碟嘅 S.M.A.R.T. 數據。首先安裝佢:
sudo apt install smartmontools
安裝完之後,用以下指令睇下硬碟嘅整體健康狀態:
sudo smartctl -H /dev/sda
如果輸出顯示 `PASSED`,代表硬碟暫時健康;如果顯示 `FAILED`,就要即刻備份數據同準備換碟。
## 睇詳細 S.M.A.R.T. 屬性
想睇更詳細嘅數據,可以用:
sudo smartctl -a /dev/sda
呢個指令會列出所有 S.M.A.R.T. 屬性,包括温度、壞軌數量、通電時間等等。要特別留意以下幾個屬性:
– **Reallocated_Sector_Ct**:重新分配嘅壞軌數量,數值持續上升代表硬碟開始老化
– **Current_Pending_Sector**:等待處理嘅可疑磁區,有數值就要警惕
– **Temperature_Celsius**:硬碟温度,超過 50 度就要注意散熱
## 用 badblocks 掃描壞軌
除咗 S.M.A.R.T.,仲可以用 `badblocks` 做一次完整嘅壞軌掃描:
sudo badblocks -v /dev/sda > badblocks.txt
呢個指令會逐個磁區測試,時間比較長,但可以揾出 S.M.A.R.T. 未必察覺到嘅問題。建議喺非繁忙時間先做。
## 定期自動化檢查
手動檢查好易漏,最好設定 cron job 定期執行。例如每個星期一朝早檢查一次:
0 6 * * 1 /usr/sbin/smartctl -H /dev/sda | grep -q FAILED && echo "硬碟異常" | mail -s "伺服器硬碟警告" admin@example.com
咁樣一有問題就會自動收到電郵通知,唔使成日手動去睇。
## 總結
🔗 參考資料:NVD NIST 漏洞資料庫
定期檢查硬碟健康狀態係保障伺服器穩定嘅重要一環。用 `smartctl` 睇 S.M.A.R.T. 數據、用 `badblocks` 掃描壞軌,再配合 cron job 自動化,就可以大大降低硬碟突然故障嘅風險。記住,數據無價,預防永遠好過補救。



