前言
最近乘着回家赶着把之前物理机装的黑群晖倒腾一下升级一下硬件,原先是物理机直接安装 DSM6 引导也是旧的升级很不方便。
然后我就给物理机装了个 Proxmox Virtual Environment 并将黑群晖虚拟化,之前物理机黑群晖并没有 UPS 现在想给它配个 UPS于是我就在京东购买了一款 APC 的 UPS 就是这个 APC BK650M2_CH 后备式 UPS 功率输出满足我的机器。
但是它只有一个通信口,我还有另外一台服务器需要接入 UPS 并不能直接将 USB 通信口直通到黑群晖了(好像 PVE 也得关机),只能用笨一点的办法,轮询 Ping 网关了并且将软路由不接入 UPS 直接使用市电来达到一个断电断网的效果,然后在接入 UPS 的服务器上配置定时检查网关存活的脚本定时执行
过程
我是秉着一个能不自己动手就不自己动手的原则,先上搜索引擎搜索,是很多大神都有现成的代码,我先是搜索到了这篇帖子 群晖设置Ping不通路由器自动关机 实现断电自动关机
从中得到了配置的脚本
1 |
|
我直接丢入系统执行,发现无论 IP 是否存活都会进到 Power on. 也就是说正则匹配不上,没办法了,还是得自己动手,丰衣足食
然后我尝试 debug 输出这个 ping 匹配的值
1 | echo ping $MonitorIP -W 2 -w 2 -c 2 | grep '^[0-9].*ms$' > /dev/null |
发现返回值一直为空 我手动执行了 ping 指令
能 Ping 通
1
2
3
4
5
6
7
8root@MyNas:~# ping 192.168.1.1 -W 2 -w 2 -c 2
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.344 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.267 ms
--- 192.168.1.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.267/0.305/0.344/0.042 ms不能 Ping 通
1
2
3
4
5
6root@MyNas:~# ping 192.168.1.123 -W 2 -w 2 -c 2
PING 192.168.1.123 (192.168.1.123) 56(84) bytes of data.
--- 192.168.1.123 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 999ms
发现使用正则 ^[0-9].*ms$ 根本无法匹配上 于是我就稍微改动了一下脚本
结果
1 |
|
目前放系统上每分钟一次执行正常运行中