如何透過電子郵件警報監控Ubuntu上的SMART硬碟健康狀況

Ubuntu 26.04 LTS 目前在其軟體包倉庫中提供 smartmontools 7.5-2。該軟體包包含smartctl用於讀取硬碟健康資料的 smartmontools 和smartd用於監控選定變更並可發送電子郵件的後台服務 smartmontools。 SMART 代表自我監控、分析和報告技術。在設定電子郵件警報之前,請先確認 Ubuntu 可以讀取每個硬碟的 SMART 資料;系統無法監控的裝置將無法傳送訊息。

本指南在一台 Ubuntu 桌面電腦上設定監控器,並在依賴警報之前發送測試郵件。它假設電腦已連接到 SMTP 中繼伺服器(負責接收和投遞郵件的服務)。桌面郵件應用程式本身並不提供此服務。

SMART警報可以告訴你什麼?

SMART 是硬碟報告的健康和錯誤訊息。它可以揭示一些警告情況,例如健康檢查失敗、錯誤數量增加或某些自我檢查結果異常。它是一種早期預警系統,並非保證硬碟能夠預測所有故障。硬碟可能在沒有任何有效警告的情況下停止工作,而「通過」結果並不意味著所有檔案都可讀。請務必單獨備份重要資料。

這些數值也取決於磁碟機類型和韌體。 SATA 硬碟和固態硬碟通常會顯示屬性表;NVMe 硬碟則以不同的格式報告健康資訊。請勿直接比較不同製造商的原始屬性值,也不要將某個通用閾值視為普遍適用。

安裝前需要準備什麼?

  • 具有管理員權限的Ubuntu帳戶。
  • 已啟用軟體包儲存庫,並需要網路連線進行安裝。
  • 接收警報的地址。
  • 您有權使用的 SMTP 中繼伺服器(例如提供者或組織的已驗證郵件伺服器)及其主機、連接埠、TLS 要求和憑證。
  • 在執行驅動器診斷程式或進行儲存變更之前,請務必備份目前資料。

某些 USB 硬碟盒、硬體 RAID 控制器、虛擬機器和網路儲存層不會將 SMART 資料傳遞到 Ubuntu 主機。因此,在直接連接的磁碟上可以正常運行的命令,在透過硬碟盒連接時可能無法執行。在更改設備選項之前,請先確認您的連線類型。

1. 尋找磁碟機名稱並檢查 SMART 存取權限

列出儲存設備,並詢問 smartmontools 可以打開哪些設備:

lsblk -o NAME,TYPE,TRAN,MODEL,SIZE
sudo smartctl --scan-open

裝置路徑通常類似於/dev/sdaSATA 磁碟或/dev/nvme0NVMe 控制器的路徑,但請使用電腦上報告的路徑。使用唯讀健康查詢測試每個目標:

sudo smartctl -a /dev/sda

替換/dev/sda為您識別的裝置。對於 NVMe 驅動器,請替換為其報告的控制器路徑。閱讀命令輸出:它應該包含驅動器標識和健康訊息,而不是“SMART 不受支援”或“設備無法打開”之類的消息。如果掃描結果列出了具有所需設備類型的設備,請按照 smartmontools 手冊中針對該控制器或橋接器的具體說明進行操作,而不是複製其他系統的-d選項。

安裝監控軟體包及配套工具:

sudo apt update
sudo apt install smartmontools mailutils

mailutils它提供 smartd 預設郵件路徑使用的命令列mail程式。它本身並非外發郵件中繼。如果 Ubuntu 尚未設定郵件傳輸代理,請先進行設定再繼續。

2. 在更改 smartd 之前設定外發電子郵件

Ubuntu 的 Postfix 軟體包可以透過 SMTP 提供者轉送外寄郵件。請將其配置為郵件用戶端,並使用提供者提供的轉送主機、驗證、寄件者位址、連接埠和 TLS 設定;請勿將桌面配置為開放式轉送。 Ubuntu 的伺服器指南中詳細介紹了 Postfix 和轉送的設定。具體的憑證和設定因郵件提供者而異,因此請使用該提供者的最新說明。保護好您儲存的任何敏感訊息,防止其他本地用戶獲取。

在呼叫 smartd 之前,先從命令列傳送一條測試訊息:

printf 'This is an Ubuntu SMART email test.\n' | mail -s 'SMART alert test' you@example.com

將範例收件人地址替換為您自己的地址。確認郵件是否送達,包括垃圾郵件或廣告郵件資料夾。若未送達,請先排查郵件中繼問題。使用 `postfix list` 指令檢查郵件佇列mailq,並使用 `postfix log` 指令查看 Postfix 日誌journalctl -u postfix。本地命令成功可能只表示郵件已排隊;只有遠端郵箱收到郵件才是真正的檢驗標準。

3. 新增 SMART 警報目標

以管理員身份開啟 smartd 設定:

sudoedit /etc/smartd.conf

對於預設裝置掃描能夠找到磁碟機的計算機,請使用一筆有效的裝置掃描記錄,並取代範例位址。如果文件中已存在有效DEVICESCAN記錄,請編輯該記錄,而不是新增重複項:

DEVICESCAN -a -m you@example.com -M test

DEVICESCAN請求 smartd 偵測支援的設備。-a啟用常用的運作狀況檢查、錯誤日誌檢查、自我檢測檢查和屬性檢查。-m設定電子郵件收件者。-M test在守護程式啟動時請​​求發送一封測試電子郵件。 smartd 設定手冊指出,此條目會接管掃描配置,因此請勿在其後新增針對每個磁碟的行。如果自動偵測遺漏了某個磁碟,請根據輸出和手冊DEVICESCAN使用顯式裝置條目。smartctl --scan-open

儲存並關閉編輯器。如果設定檔包含私密訊息,請將其設定為僅管理員可讀。收件者並非密碼,但絕對不能將 SMTP 中繼憑證放在此文件中。

4. 開始監控並確認測試警報

在 Ubuntu 系統中,打包單元名稱為smartmontools.service。啟用並啟動它,然後檢查其狀態:

sudo systemctl enable --now smartmontools.service
systemctl status smartmontools.service

Ubuntu 的軟體包也用於/etc/default/smartmontools控制受支援軟體包配置中的守護程序啟動。如果安裝後服務未激活,請檢查該檔案中的start_smartd=yes設置,然後重新啟動服務。如果啟動失敗,請在修改單元檔案之前閱讀日誌:

sudo journalctl -u smartmontools.service -b

由於配置中包含相關設置-M test,重啟服務後應該會觸發一封測試郵件。請確認收到郵件。此測試證明 smartd 可以呼叫郵件路徑,且郵件可以到達收件匣;但它並不會模擬磁碟機故障,也不保證郵件將來能夠送達。測試成功後,請編輯/etc/smartd.conf並刪除-M test相關設置,以避免正常重新啟動時發送額外的測試郵件。然後再次重啟服務:

sudo systemctl restart smartmontools.service

5. 確認每個驅動器都已被監控

檢查服務日誌和手動運行狀況輸出:

sudo journalctl -u smartmontools.service -b
sudo smartctl -a /dev/sda

將路徑替換為發現過程中報告的每個磁碟機的路徑。守護程式日誌應顯示它已開啟受支援的裝置和計畫檢查,且未出現重複的裝置存取錯誤。此時的正常報告可提供有用的基線信息,但並不能保證不會發生突發故障。

為了在不發生故障的情況下檢查設備行為,請在設備支援的情況下執行硬碟自我檢測。通常,短時自檢比長時間自檢對系統幹擾更小,但請務必查閱硬碟手冊,並避免在不穩定的系統或儲存了不可替代資料且沒有備份的硬碟上啟動診斷程序。測試指令可以類似於 `<command>` sudo smartctl -t short /dev/sda;硬碟會報告測試預計完成的時間。使用 `<command>` 查看結果sudo smartctl -l selftest /dev/sda。電子郵件測試和硬碟自檢是兩個獨立的檢查:一個用於驗證郵件送達情況,另一個用於讓設備進行自我檢查。

常見問題及檢查內容

服務正在運行,但沒有收到電子郵件。

首先使用該mail命令發送另一封郵件。如果失敗,請檢查 SMTP 中繼、驗證、TLS 設定、寄件者政策、DNS、佇列和垃圾郵件資料夾。如果命令列郵件發送正常但 smartd 測試失敗,請確認收件者出現在活動DEVICESCAN行中,mail可執行檔已安裝,並且 smartd 可以找到它。檢查守護程式日誌,查看郵件程式的錯誤輸出。

掃描中缺少一個磁碟機。

再次運行sudo smartctl --scan-open並檢查設備特定的指令。 USB 轉 SATA 橋接器可能需要特定的直通模式,而某些 RAID 控制器則需要控制器特定的裝置語法。切勿猜測:錯誤的設備類型會導致 smartmontools 查詢錯誤的設備或無法報告任何有用的信息。

磁碟檢測報告顯示“通過”,但有錯誤。

請仔細閱讀詳細屬性、錯誤日誌和自我檢測日誌,不要將整體摘要視為全部診斷結果。如果錯誤增加、設備變得不穩定或收到警報,請立即備份重要資料並規劃更換設備。即使檢查結果正常,也不能取代定期備份。

了解電子郵件監控的局限性

smartd 會定期輪詢支援的設備,並透過電子郵件發送選定的警告;但它無法監控所有可能的故障模式,離線桌面在斷電或斷開連接時無法報告故障。電子郵件也可能出現延遲、被拒收或被過濾的情況。請定期檢查服務運作狀況,並在變更 SMTP 憑證或提供者後重複郵件投遞測試。對於關鍵數據,請將 SMART 監控與獨立備份和復原計畫結合使用。

官方參考資料

留下評論

如何在Linux系統上使用Cameractrls更改網路攝影機設置

如何在Linux系統上使用Cameractrls更改網路攝影機設置

使用 Cameractrls 在 Linux 上變更網路攝影機設定:調整曝光、色彩、減少閃爍和其他支援的控件,然後檢查相容的視訊模式。

如何在 Linux 上安裝 PhpStorm:工具箱、Tar.gz、Snap 和 AUR

如何在 Linux 上安裝 PhpStorm:工具箱、Tar.gz、Snap 和 AUR

在 Linux 系統上,您可以使用 JetBrains Toolbox 或獨立的 tar.gz 壓縮套件安裝 PhpStorm,此外還有 Snap 和 Arch AUR 版本可供選擇。 Java 已預先安裝。

如何在 Linux 系統上將 CD-ROM 備份為 ISO 文件

如何在 Linux 系統上將 CD-ROM 備份為 ISO 文件

在 Linux 上使用 GNOME Disks 或 dd 建立 CD-ROM ISO。識別光碟機,監控複製過程,驗證鏡像,並了解何時損壞的光碟或音訊光碟需要其他工具。

如何在 XFCE 4 上設定雙面板

如何在 XFCE 4 上設定雙面板

為每個顯示器建立一個單獨的 XFCE 4 面板,將第二個面板指派給正確的輸出,調整其位置和大小,並新增所需的啟動器和狀態項目。

如何在Linux上安裝Cisco Packet Tracer

如何在Linux上安裝Cisco Packet Tracer

下載適用於 Ubuntu 64 位元系統的 Cisco Packet Tracer 9.0.1,使用 APT 安裝 DEB 軟體包,在終端機中接受許可協議,然後登入以啟動實驗環境。

如何在Linux系統下使用GIMP摳圖

如何在Linux系統下使用GIMP摳圖

在 Linux 系統上使用 GIMP 去除照片背景:描繪主體,刪除選定的背景,保持透明度,並匯出可重複使用的 PNG 檔案。

免費下載 FlightGear:官方安裝指南

免費下載 FlightGear:官方安裝指南

從官方網站免費下載 FlightGear。比較 Windows、macOS 和 Linux 版本的軟體包,安裝資料文件,即可開始您的首次飛行。

Google Tasks桌面應用程式:如何在電腦上使用

Google Tasks桌面應用程式:如何在電腦上使用

在瀏覽器中開啟 Google Tasks,新增 Chrome 捷徑或應用程式啟動,並透過行事曆和 Gmail 管理有日期的待辦事項。

OKSampler:一款免費、簡單的鍵盤節拍音樂採樣器

OKSampler:一款免費、簡單的鍵盤節拍音樂採樣器

OKSampler 可以將 MP3 片段對應到鍵盤按鍵,並支援音訊循環播放。了解這款經典免費軟體的功能、其舊功能的缺失以及下載前需要檢查的事項。

如何在 Linux 系統上安裝 Wireshark:Ubuntu、Fedora、Arch 等

如何在 Linux 系統上安裝 Wireshark:Ubuntu、Fedora、Arch 等

使用目前軟體包命令在 Ubuntu、Debian、Fedora、Arch 或 openSUSE 上安裝 Wireshark,然後安全地配置即時資料包擷取。