任天堂

雜七雜八,亂亂寫

把 Synology NAS 接上UPS,實現NAS停電自動關機

幾年前就踏入了黑群暉的領域中,有的NAS也沒裝UPS,Server存放的位置倒市遇過幾次瞬段或是跳電,黑群暉雖說被跳電關閉了但也還好Raid沒有失效。
最近在家裡翻出了老古董的飛瑞500VA的離線式UPS一台,鉛酸電瓶NP7-12已經壽終正寢,據悉該電瓶是民國101年買的,迄今也14年餘………….
因為鉛酸電瓶的壽命就是2-3年,所以自己 DIY了一顆同NP7-12尺寸規格的磷酸鐵裡電瓶,測試了兩週以上沒啥問題,就拿來給他上線,但是這台UPS是不帶通訊com Port的,那要如何實現台電停電(跳電)然後讓Synology NAS自動關機呢? 聽我道來


環境設定與說明
1.一部 黑群暉 DSM 7.2
2.一部 伊頓 飛瑞500VA UPS 不帶COM Port通訊


工作原理與邏輯如下
1.在NAS裡面產生一個腳本,這腳本每5分鐘運行一次
2.運行時DSM核心會去ping你指定的IP(路由器或是小烏龜又或者是中華DNS還是股哥DNS都行)
3.在Ping上述IP只要time out 超過你設定的秒數(舉例來說180秒) 就讓NAS關機


步 驟 1

打開DSM –> 控制台 –> 任務排程表 –> 新增 –> 排程任務 –> 使用者定義指令碼


步 驟 2

書籤”一般設定”任務名稱填入 Power outage shutdown NAS Server –> 使用者帳號請root


步 驟 3


書籤 “排程” –> 每天執行 –> 在同一天內 每五分鐘執行一次 –> 最後執行時間是23:55


步 驟 4

書籤 “任務設定” –> 在 “使用者定義指令碼” 這個欄位中輸入下列程式碼


程式碼腳本如下:

#!/bin/sh
MonitorIP=168.95.1.1
DelayTime=240s
if ping $MonitorIP -W 2 -w 2 -c 2 | grep ‘^[0-9].ms$’ > /dev/null then echo “Power on.” else synologset1 sys warn 0x11600036 sleep $DelayTime if ping $MonitorIP -W 2 -w 2 -c 2 | grep ‘[0-9].ms$’ > /dev/null
then
synologset1 sys warn 0x11600035
else
synologset1 sys warn 0x11600037
poweroff
fi
fi
exit 0

依照上面的腳本我解釋一下
1.其中 MonitorIP=168.95.1.1 是指ping 168.95.1.1 中華電信的DNS Server,通常來說它不會失聯
2.DelayTime=240s 表示time out我設定240秒也就是4分鐘,換句話說168.95.1.1若失聯4分鐘ping不到系統就會執行關機程序


步 驟 5

都設定好之後按下確定(存檔)


步 驟 6

接著你就會得到一個已經設定完成的排程,記住擁有者一定要是root,這樣權限才夠大


如此一來,不需要買昂貴帶通訊的UPS來接給NAS使用也可以實現台電停電自動讓NAS關機

Flag Counter

謝謝您的閱讀

如果對我寫的文章內容有任何問題,歡迎在底下留言讓我知道

我是任天堂543亂亂寫的Sega

留下回應

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