适用任何UPS电源:群晖ping自动关机任务

我们知道突然停电会对我们的磁盘造成一定的损伤,但是有时候家里停电不可避免,NAS里面的磁盘存有我们的重要数据,如果长期突然停电,可能造成NAS磁盘损毁,数据无价,于是好多人给自己的NAS配了不间断电源UPS,原本UPS和NAS之间有一条数据线,可以通过数据线通信,停电后UPS会通知NAS停电信息,NAS就会做成必要的保护措施,但是并不是所有的NAS支持的所有的UPS,所以就出现了今天需要解决的问题,UPS和NAS之间默认不兼容,当然也可通过网上找相关的驱动来解决,但也不是万能的,尤其是自己组装的UPS,更不可靠和NAS通信,这种情况下,我们可以通过在NAS上创建计划任务的方式来解决,今天我们就以群晖7.01的系统作为演示,其他NAS系统同理。

原理:

市电停电后,我们的路由器或者网关首先会关机,但是我们的NAS因为接了UPS,所以并不会马上关机,但是UPS的电量也是有限的,坚持不了太长时间,我们可以在NAS上创建定期循环任务,来ping路由的IP地址,如果ping不通,NAS就在延迟几分钟后关机,从而保护NAS里面的磁盘。

教程开始

1.打开群晖的控制面板,点击任务计划

2.依次点击:新增——计划任务——用户自定义脚本。

3.填写计划名称,用户账号必须选择root,否则可能运行出错。

4.点击计划,设置为每天运行,运行频率根据你UPS续航能力设置,建议10-30分钟。

5.切换到任务设置,复制粘贴下面的代码,需要修改则这段代码

MonitorIP=192.168.1.1
DelayTime=600s

IP是你的网关地址(或者能代表停电关机的的IP),和DelayTime就是ping通以后的延迟关机时间。

代码

#!/bin/sh

MonitorIP=192.168.1.1
DelayTime=600s

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

 

 

版权声明:本文采用知识共享 署名4.0国际许可协议BY-NC-SA 进行授权
文章作者:墨涩
文章链接:https://www.sunweihu.com/8328.html
免责声明:本站为资源分享站,所有资源信息均来自网络,您必须在下载后的24个小时之内从您的电脑中彻底删除上述内容;版权争议与本站无关,所有资源仅供学习参考研究目的,如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
本站为非盈利性站点,并不贩卖软件,不存在任何商业目的及用途,网站会员捐赠是您喜欢本站而产生的赞助支持行为,仅为维持服务器的开支与维护,全凭自愿无任何强求。

THE END
分享
二维码
打赏
< <上一篇
下一篇>>
文章目录
关闭
目 录