Filesystems

如果驅動器離線(或 USB 埠重新啟動)自動發送電子郵件的方法

  • February 8, 2019

如果 USB 埠重新啟動,並且通過擴展,一個外部驅動器離線?

去年我在我岳父家安裝了一個新的閉路電視系統,作為額外的獎勵,我給他買了一個 Raspberry PI,將其設置為 VPN 和文件伺服器,並將攝影機設置為直接記錄運動到一些 NFS我在 PI 上的外部驅動器上設置了共享,因此如果有人有頭腦竊取 NVR,那麼任何重要的東西都會有兩個副本。

但攝影機不斷失去儲存空間,需要重新啟動才能使儲存恢復線上。

我認為這是一個 POE 問題,因為攝影機本身有時也會在直接從 NVR 供電時重新啟動,但在安裝 POE 交換機並稍微更改網路配置後,這種情況已經停止。

不過,我今天檢查了一下,發現相機再次失去了二級儲存。進一步調查,我縮小了時間,並檢查了 PI 上的 syslog。我發現它遇到了USB問題。

usb 1-1.1-port2:被集線器禁用(EMI?),重新啟用…

隨後是數千條有關驅動器離線、聯機以及攝影機嘗試訪問 NFS 共享的消息。

我想要的是,如果此事件記錄到 syslog 文件中,或者只是當其中一個文件系統離線時,系統會向我發送一封電子郵件,這樣我就可以給他打電話,看看他是否在做任何具體的事情。

它可能就像一個狡猾的 USB 引線或驅動器外殼一樣簡單(我們有一個自供電外殼以使 PI 不必旋轉 3.5 英寸硬碟)所以它甚至可能是 PSU,但我想嘗試在獲得可能無法解決問題的新 HDD 機箱之前,確定發生故障時發生的任何事情。

PI 本身由官方 Pi 3 psu 提供支持。PI 的外殼是鋁製的(我不記得我買的具體那個,但它全是金屬來充當散熱器),但它在他的書房里相當隱藏在顯示器後面,因此不太可能發生太大變化並做空任何東西。

應 K7AAY 的要求進行編輯

Pi 正在執行 Raspbian 9

如果解決方案涉及可以執行腳本的方法,我將修改以下腳本。

#bin/sh
IPADDRESS=$(curl https://wtfismyip.com/text)
if [ "$IPADDRESS" != "$(cat /home/will/scripts/.current_ip)" ]
then
dt=$(date)
echo "Your new IP address as of ${dt} is ${IPADDRESS} \r \r FTB" | mail -s "IvanPI IP address change" **********@gmail.com
echo "$IPADDRESS" >| /home/will/scripts/.current_ip
echo "$dt $IPADDRESS" >> /home/will/scripts/.iphistory
fi

如果發生上述事件,我需要發出的唯一命令是

echo “外部硬碟離線/USB 在 ${dt} \r \r FTB 處重新啟動” | mail -s “IvanPI HDD 離線” *************@gmail.com

我只需要知道如果 HDD 離線/文件系統離線/USB 埠重新啟動,如何觸發該命令。

這些事件中的任何一個都適合為電子郵件生成觸發器,因為它們本質上都是一樣的。

Trafikitomonit是相當輕量級的服務,可以監控您的驅動器,如果失敗,請檢查 USB 埠狀態。然後,任何一方都可以發送消息。建議您查看他們的功能集,看看您喜歡哪個。

引用自:https://unix.stackexchange.com/questions/499369