脚本内容如下
#!/bin/sh
MonitorIP=192.168.31.1
DelayTime=180s
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
192.168.31.1
是路由器地址,根据实际路由器网关地址修改,180s是延时180秒即三分钟,
如果ping不通路由器,延迟三分钟后 (正常重启路由器三分钟足够了),仍然ping不通路由器,群晖自动关机 (需要有UPS支持)
群晖配置
打开控制面板
选择计划任务
创建计划任务的自定义脚本
脚本名称随便写,方便记忆即可。用户账号需要为root
我们需要在每天执行,每5分钟执行一次,判断网络是否正常
将脚本内容复制进来,也可以加上异常的通知
虽然异常通知基本上是无法发送出来的
因为是root用户,需要输入DSM管理员密码,并且权限为群晖最大权限