群晖断网自动关机

由于我的 UPS 不带通讯功能,无法接入群晖停电自动关机,因此,利用 shell 脚本不停的 ping 路由器,当路由器无法 ping 通时,延时一段时间后调用 poweroff 关闭群晖,实现断网自动关机。
ssh 连接并群晖获取 root 权限 执行如下命令:

cd /volume1/docker/ # 切换目录到 / 

# 以下内容全部复制,粘贴执行
tee netcheck.sh <<-'EOF'
#!/bin/env bash
MonitorIP=192.168.20.1
DelayTime=180s
if `ping $MonitorIP -W 2 -w 2 -c 2 >/dev/null`;then
    echo `date +'%Y-%m-%d %H:%M:%S'`
    echo "Power on."
else
    echo `date +'%Y-%m-%d %H:%M:%S'`
    synologset1 sys warn 0x11600036
    sleep $DelayTime
    if `ping $MonitorIP -W 2 -w 2 -c 2 >/dev/null`;then
    synologset1 sys warn 0x11600035
    else
    synologset1 sys warn 0x11600037
    poweroff
    fi
fi
exit 0
EOF

回到 DSM 网页,打开“控制面板”,选择“任务计划”,选择root权限,新增“用户定义的脚本”,每天运行:00:00开始,每5分钟一次,结束23:55 。

在“任务设置”的“用户自定义脚本”中填入:
bash /volume1/docker/netcheck.sh >> /volume1/docker/netcheck.log