Chiphell - 分享与交流用户体验

 找回密码
 加入我们
搜索
      
查看: 48482|回复: 43

[NAS] 屌丝UPS实现NAS断电自动关机

  [复制链接]
发表于 2013-3-17 16:49 | 显示全部楼层 |阅读模式
来CHH有一段时间了,作为一个标准屌丝,看到各位高帅富在硬件show中动辄价格成千上万的各种网路和硬件设备在心惊肉跳的同时,也羡慕不已,作为本人的处女贴,献给和我一样的广大屌丝。

何为屌丝UPS,就是普通的不能再普通UPS,没有高级货的USB或者网络接口,只有电源接口,唯一的好处就是价格便宜,断电的时候可以维持NAS供电一段时间,但是由于没有通信功能,在Q家或者其他的NAS UPS配置中无法启用断电自动关机,所以如果不想个办法,是无法断电关机的,突然断电对于NAS的危害我就不说了,还有如果你已经有APC BK650等高帅富级UPS,您也可以略过这篇文章了。

首先来介绍今天的屌丝UPS,断电只是带4盘位的屌丝级伪QS419PII的话可以50分钟,还是大牌,山特TG500(为什么是这一款,一是便宜,二是小巧静音,不带风扇,其实是屌丝没钱买不起好的贵的,嘿嘿),这个自己淘宝搜索,图片就不发了,网上大把,我这个是技术贴,不是硬件show,其实也没有什么好show的。



以下参考了网上的一些资料和自己的一些摸索,如有雷同,纯属巧合,本人不负责任的:

说一下思路,其实是ups只接NAS,路由接市电,通过每隔一定时间通过NAS ping路由IP地址来确认是否停电,如果ping没有问题,就是有电,如果突然断电,ping不通了,就认为断电,执行关机命令。


首先winscp或者putty进NAS,在/usr/sbin/下建立TG500.sh文件,内容如下:

#!/bin/sh

ping -c 1 192.168.1.1 > /dev/null
ret=$?
if [ $ret -eq 0 ]
then
echo ' AC Power OK ! '
else
echo ' AC Power maybe off, checking again after 4 minutes ! '
sleep 240
/usr/sbin/TG500-2.sh
fi

winscp修改属性为0755,赋予可执行权限,以上内容可能各位lunix达人一看便知,是一个检测脚本,如果ping的通路由的ip,就说明市电正常,不通的话再次检测确认,为什么要再次检测,因为有可能你的路由重启,或者是其它什么情况导致暂时ping不通,所以要再次检测确认,我这里是隔了4分钟,一般4分钟足够路由重启了。

还有这个TG500.sh文件为什么要放在/usr/sbin/目录,因为我试过如果放在NAS本身的一些目录中,如/etc或者/sbin等系统自带目录,重启后自检会删除你新增的文件,导致脚本失效,所以只能放在/usr/下面的子目录中。


继续在/usr/sbin/下建立TG500-2.sh文件,内容如下:

#!/bin/sh

ping -c 1 192.168.1.1 > /dev/null
ret=$?
if [ $ret -eq 0 ]
then
echo ' AC Power OK ! '
else
echo ' AC Power off, shut down NAS ! '
/sbin/poweroff
fi

同样winscp修改属性为0755,赋予可执行权限,这个就是再次确认脚本,如果过了4分钟再次ping路由还是不通,就关机。

然后修改/etc/config/crontab文件,增加一条
*/5 * * * * /usr/sbin/TG500.sh
就是每5分钟执行一次检测脚本,保存后关机重启NAS即可,通过以上的脚本,得到的效果是如果断电,那么在9-14分钟内NAS就会自动关闭,如果路由只是重启,4分钟内不会关闭NAS(再次确认一下。NAS接UPS,路由接市电,路由的ip地址为192.168.1.1),从而保护了我们的硬盘和数据,将突然断电的风险降到最低,本人亲测有效(在Q家419PII上测试通过,理论上支持其他Q家的NAS,但是不保证,为此测试脚本重启NAS接近10次,走了不少弯路,郁闷呀-_-)

以上可以根据你自己的路由ip地址和UPS能力来修改检测时间。
其实还可以在路由写个类似脚本,来实现来电自动开机,但是无奈屌丝级伪QS419PII的网络唤醒有问题,就没法实现了,只能遗憾了,不过来电自动开机感觉没有断电自动关机重要,有以上作为一个标准屌丝的我已经很满足了。



各位看了要是觉得有帮助,还请加个精或者射点邪恶什么的,就太谢谢了。

评分

5

查看全部评分

发表于 2013-3-17 16:59 | 显示全部楼层
LZ这种情况肯定需要这种思路的,实现起来相当简单。如果NAS和路由器之间的网络通讯临时出现超出4分钟以上的连接不通的话,会不小心关机的。

不过还有个思路。

用一个小型电机维持一个悬空小球或者小锤子。当停电时,小球或者小锤子落下,敲击在NAS关机键,LZ设置关机脚本安全关机(如果有必要)就可以了。这样可以摆脱路由器的牵制。

评分

1

查看全部评分

发表于 2013-3-17 18:21 | 显示全部楼层
dongyl 发表于 2013-3-17 16:59
LZ这种情况肯定需要这种思路的,实现起来相当简单。如果NAS和路由器之间的网络通讯临时出现超出4分钟以上的 ...

敲击大亮!万一..这个敲击猛如虎
发表于 2013-3-17 19:00 | 显示全部楼层
dongyl 发表于 2013-3-17 16:59
LZ这种情况肯定需要这种思路的,实现起来相当简单。如果NAS和路由器之间的网络通讯临时出现超出4分钟以上的 ...

神思路啊- -
发表于 2013-3-18 01:01 | 显示全部楼层
敲击亮了
发表于 2013-3-18 03:08 | 显示全部楼层
类似的思路看到过

台式机可以用Win的计划任务检查网路的状况实现断电自动关机

网上可以搜索到
发表于 2013-9-15 00:22 | 显示全部楼层
好贴留名 楼主帮了我大忙
发表于 2013-9-15 13:18 | 显示全部楼层
我有两台基于Windows Server系统的NAS,但UPS只能连到其中一台(USB端口),没办法我只好自己写了个程序,在其中一台检测到UPS开始切换到电池的时候关闭另外一台Server,然后自己再关机。

QQ截图20130915131458.png
发表于 2013-9-16 09:07 | 显示全部楼层
turan12 发表于 2013-9-15 13:18
我有两台基于Windows Server系统的NAS,但UPS只能连到其中一台(USB端口),没办法我只好自己写了个程序, ...

能否分享一下这个程序?
发表于 2013-10-6 13:41 | 显示全部楼层
turan12 发表于 2013-9-15 13:18
我有两台基于Windows Server系统的NAS,但UPS只能连到其中一台(USB端口),没办法我只好自己写了个程序, ...

求windows源码
我只会在linux下写脚本
[email protected]
发表于 2013-12-23 15:18 | 显示全部楼层
/usr/sbin/找不到?
 楼主| 发表于 2013-12-23 23:22 | 显示全部楼层
本帖最后由 terryborg 于 2015-2-9 20:11 编辑
deyu260 发表于 2013-10-6 13:41
求windows源码
我只会在linux下写脚本

windows下很简单,用计划任务即可控制,思路类似,以下文章供你参考:
http://itbbs.pconline.com.cn/10812332.html

本来想有时间写详细些,但一直也没空就作罢了,把我的N54l(gen8同样适用)的断电自动开关机文件上传供参考,:断网关机 N54L.xml (这个是断电自动关机的)

联网取消关机 N54L.xml (这个是路由重启或者3分钟又来电取消自动关机的)


如果是N54l/gen8在Win7x64下直接在计划任务中导入即可实现断电普通ups自动关机,3分钟内又来电自动取消关机。供参考!

win7 ups自动断电脚本下载:
http://pan.baidu.com/s/1pJp2QyZ
发表于 2013-12-28 21:56 | 显示全部楼层
terryborg 发表于 2013-12-23 23:22
windows下很简单,用计划任务即可控制,思路类似,以下文章供你参考:
http://itbbs.pconline.com.cn/1081 ...

thanks for share
发表于 2014-5-16 22:48 | 显示全部楼层
很实用啊
发表于 2014-5-27 09:58 | 显示全部楼层
用时间继电器不就解决了嘛,断电后任意时间开合,可以连接开关机线。
 楼主| 发表于 2014-5-27 11:44 | 显示全部楼层
bang8 发表于 2014-5-27 09:58
用时间继电器不就解决了嘛,断电后任意时间开合,可以连接开关机线。 ...

这样改造太大了吧,又要另外购买时间继电器,还要动机箱连线,不是很方便,如果不是很紧的话,还是推荐购买高级点的ups,直接usb或者网络与主机通信会更好的
发表于 2014-10-17 20:38 | 显示全部楼层
好贴留名 楼主神一样的思路。
发表于 2014-10-31 23:08 | 显示全部楼层
赞一个,在我试图购买新UPS(带USB数据线的)之间看到了这个帖子,楼主帮我节省了1000大洋啊。。。
发表于 2014-11-19 10:41 | 显示全部楼层
这个思路不错。。
发表于 2014-11-19 12:25 | 显示全部楼层
turan12 发表于 2013-9-15 13:18
我有两台基于Windows Server系统的NAS,但UPS只能连到其中一台(USB端口),没办法我只好自己写了个程序, ...

烦求下程序,谢谢!
发表于 2014-11-19 12:47 | 显示全部楼层
好贴一定要顶
发表于 2014-11-19 13:12 | 显示全部楼层
技术贴啊,要顶
发表于 2014-12-28 16:14 | 显示全部楼层
学习了,我回去试试!
发表于 2015-2-10 11:52 | 显示全部楼层
技术贴,牛人啊,不过有没有监控设备断电自动关机的方法啊,现在用海康威视,想停电后自动关机,不知道怎么弄
发表于 2015-3-21 14:36 | 显示全部楼层
非常不错的方法!!厉害啊!
发表于 2015-3-25 21:53 | 显示全部楼层
非常不错的方法!!厉害啊!
发表于 2015-3-30 11:09 | 显示全部楼层
LZ的NAS用的是QNAP的TS-419II么?
发表于 2015-12-8 16:00 | 显示全部楼层
已测试 在Server 2012 R2上仍然好用,特此挖一下。。
发表于 2016-9-20 17:56 | 显示全部楼层
如果nas一直ping路由,会不会造成硬盘无法休眠?
发表于 2017-7-25 13:47 | 显示全部楼层
收获很大! 照抄脚本!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

小黑屋|手机版|Archiver|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806

GMT+8, 2019-10-22 19:28 , Processed in 0.018219 second(s), 18 queries , Gzip On, Redis On.

Powered by Discuz! X3.1

© 2007-2019 Chiphell.com All rights reserved.

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