恩山无线论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2407|回复: 6

群晖之屌丝关机

[复制链接]
发表于 2020-7-30 21:35 | 显示全部楼层 |阅读模式
低端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小白网上学习所得,不足之处欢迎指正,谢谢。


1.png

添加开机任务

添加开机任务

4.png
2.png
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2020-7-30 21:35 | 显示全部楼层
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
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2020-7-30 21:42 | 显示全部楼层
代码中的 Monitor1、Monitor2 必须修改为自用设备名称或者固定IP;日志文字内容自行修改。
我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-8-7 22:37 | 显示全部楼层
本帖最后由 ETan 于 2020-8-11 12:54 编辑

从张大妈过来的,学习了。能用就行。
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2020-8-10 14:07 | 显示全部楼层
@ETan 感谢回复。
关键字我觉得不重要,你临时开启路由器telnet,看ping指令返回的结果,根据自己的实际选才是最合理的。
说实话, 我不理解你的意思。按我个人的理解,UPS上一定是接着NAS的,买UPS主要就是为了数据,我的光猫和路由器,也同时接到了UPS上。因此,NAS Ping自己或者路由器,就等于无用功。需要Ping市电断电就Ping不通的设备,才有用。
如果路由器挂市电,那你直接Ping路由器也可以。路由器断电,后面接的设备,并不会立即改变IP,所以Ping NAS自己的IP也没有意义。
我觉得固定IP不如用设备名,万一复位路由器或者NAS,IP就变了,然后自动关机了,麻烦。设备名,基本不会变,路由器里看连接了哪些设备,就可以看到。这也是网上已经有了很多的代码,我还发这个贴的原因之一。
Ping设备名、Ping 2台不同的设备、写日志不影响磁盘休眠、控制日志大小,才是这个帖子存在的价值。

还需要改进的,就是NAS检测到设备1掉线、设备2也掉线,发不同声响警报。这个代码我还不会。
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2020-8-10 14:17 | 显示全部楼层
求:群晖发声、发邮件、发短信报警代码,谢谢。
我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-8-11 13:24 | 显示全部楼层
本帖最后由 ETan 于 2020-8-15 18:07 编辑

1,说实话, 我不理解你的意思。
2,路由器断电,后面接的设备,并不会立即改变IP,所以Ping NAS自己的IP也没有意义。


答:1,新建脚本:nas查看网卡ip,如果{******,结束脚本}
                                                   如果{*****,三分钟后再**********,关机}
           以上脚本设置开机运行计******钟运行一次

答:2,找台电脑测试,设置静态ip,拔掉网线,ipconfig/all,ip为空
我的恩山、我的无线 The best wifi forum is right here.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )|网站地图

GMT+8, 2020-9-21 19:33

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表