简单拓扑结构:

弱电箱(光猫 - POE路由)

电视柜(POE/AP - DS118 + DS918),其中DS918与UPS组成UPS服务器

DS118和DS918可以在停电后通过UPS供电,可在短时间内保持运行

但是,使用POE供电的AP面板是通过弱电箱中的POE路由供电,路由断电后,AP面板也就没有电了

这样DS118在断电后无法收到DS918的UPS服务器信号,导致不会在停电后自行关机。

解决方案:

1、在电视柜里使用交换机,交换机使用UPS供电,可保证断电后DS118与DS918的联通

2、电视柜里添加POE供电模块,电源链接到UPS,使POE供电模块在停电后可以为AP面板供电

3、DS118上设置定时任务,ping路由器,连续两次ping不通则认为停电了,主动关机。

本文主要说明方法3,

shell脚本如下:

#!/bin/sh
MonitorIP=192.168.1.2
DelayTime=600s

sudo ping -c 2 $MonitorIP > /dev/null
result=$?
if [ $result -eq 0 ]
then
 echo "AC Power online."
else
 synologset1 sys warn 0x11600036
 echo "AC Power maybe offline, check again after 5 minutes. "
 sudo sleep $DelayTime
 sudo ping -c 2 $MonitorIP > /dev/null
 result=$?
 if [ $result -eq 0 ]
 then
  synologset1 sys warn 0x11600037
  echo "AC Power restored."
 else
  synologset1 sys warn 0x11600035
  sudo shutdown -h now
 fi
fi

exit 0

添加到定时任务,每5分钟执行一次,第一次ping路由器不通,会在5分钟后再次ping,若5分钟内电力恢复,不会关机,若5分钟后仍然没有ping通,执行shutdown关机。

** 需要说明的是:脚本需要设置为root所有,ping,sleep,shutdown都需要添加sudo权限,否则无法成功执行。 **