| 低端UPS没有通讯接口,网上刨到的Ping其他设备关机,比较适用。经如下改进,测试可用。测试环境: 群晖 216Play, DSM版本:6.2.3 1、Ping :改Ping设备名: A、被测设备无需设置固定IP,适用性广; B、可ping智能家居,如:智能插座、燃气热水器、电视机、机顶盒…… 注意:少数设备,如荣耀智慧屏,Ping设备名称失败,只能Ping IP。 C、使用同一供电线路的2个设备做判断,提高可靠性。 监测关键字为Ping 命令返回语句中的 “bytes from”,可根据实际修改。 不使用TTL做关键字原因:部分设备返回225,部分设备返回 64. 不使用 ms 做关键字原因:有网友发文,其ping不通时仍有ms 返回。 2、日志: A、使用日志,不影响磁盘休眠; B、开机时,NAS上备份的日志文件拷入群晖 /tmp/ups文件夹,并追加日志;断电关机时自动回写NAS; C、开机时,NAS上备份的日志文件大于100KB时,将被清空内容。 手动关闭NAS,日志文件不会回写。可自行增加关机前的任务计划。 3、关机时间:设备1检测时间 (1~ x分钟) + 设备2的检测间隔 150秒 + Shutdown 关机延迟 1分钟。 设置简单:添加2个计划任务:1、开机写代码计划(代码见2楼);2、定时Ping计划。 Linux小白网上学习所得,不足之处欢迎指正,谢谢。 ![]() ![]() ![]() ![]() |
| cd /tmp/ups # 切换目录到 /tmp/ups tee netcheck.sh <<-‘EOF’ #!/bin/env bash #MonitorIP=192.168.1.2 Monitor1=BRN3C2AXXXXXXX Monitor2=uplus-haier-1814-XXXXX DelayTime=150s if ping $Monitor1 -W 2 -w 2 -c 2 | grep ‘ bytes from ‘ > /dev/null then echo “$(date -d today +”%Y-%m-%d %H:%M:%S”):连接打印机正常。” | tee -a /tmp/ups/PowerLog.txt else echo “$(date -d today +”%Y-%m-%d %H:%M:%S”):连接打印机失败,稍候测试燃气热水器 。。。” | tee -a /tmp/ups/PowerLog.txt sleep $DelayTime if ping $Monitor2 -W 2 -w 2 -c 2 | grep ‘ bytes from ‘ > /dev/null then echo “$(date -d today +”%Y-%m-%d %H:%M:%S”):连接燃气热水器成功,退出复检。” | tee -a /tmp/ups/PowerLog.txt else echo “$(date -d today +”%Y-%m-%d%H:%M:%S”):连接2个设备均失败,NAS 1分钟后关机。” | tee -a /tmp/ups/PowerLog.txt cp -f /tmp/ups/PowerLog.txt /volume1/Software/PowerLog.txt shutdown -P +1 fi fi exit 0 EOF find /volume1/Software/ -iname PowerLog.txt -size +100k -exec ture > /volume1/Software/PowerLog.txt \; sleep 2s #日志文件超过100K时,清空内容。 cp -f /volume1/Software/PowerLog.txt /tmp/ups/PowerLog.txt chmod 666 /tmp/ups/PowerLog.txt |



