飞牛nas用便宜ups实现停电自动关机,实测可用!
上篇给大家说了,为了省钱,“开发”了一个飞牛nas上的应用。想买UPS,为了节省100多,我又开发了一个奇怪的飞牛nas应用:网络断开自动关机
今天买的没信号的ups电源收到了,并且做了个实际的测试,确实能用,请看测试视频。
1.1.4版时候就能用,但是每10秒写入一次状态,感觉有点浪费。不停电的时候多,写入的状态都是SUCCESS,没意义。得解决频繁写入问题。
我们核心需求很简单:停电时候nas不断电,应用能发现,通知系统正常关机,并记录下来,方便恢复后可查看,停电信息不被挤没。

改到1.1.9时候,这几个需求都成了。
1、在没有写入文件前,所有的Ping成功记录都存放NAS的内存中。应用在内存中维护了一个列表,Web界面通过API直接读取内存数据,因此响应速度极快且不会产生磁盘 I/O。
2、什么时候会写入磁盘?这几个触发事件会写入硬盘。
Ping失败:一旦出现失败(Warning),立即写入磁盘以防断电丢失异常记录。
触发关机:判定关机(Critical)时,强制刷盘。
手动清理:点击“清理记录”时,同步清空磁盘文件。
应用启动/停止:记录初始状态。 普通的Ping成功记录仅留存在内存中,不会触发写入。
下图可以看出最近一次下发关机命令有置顶,三次Ping失败后同时下发的关机米命令,从第一次Ping失败就已经给磁盘写记录了。大概三分钟后系统和这个服务再次启动我们就看到了完整的信息。

昨天下午,发生了一次真实的停电!昨天还没有收到ups,nas和光猫同时断电!所以,上午10:27我手动断网测试的记录之后,10:29监控启动后,给硬盘写入了一次记录后,其余暂存到内存里的Ping记录全部因为没来得及写入磁盘。我通电开机后,17:16的监控已启动触发了写入磁盘的操作。
这个被动测试,也侧面证明记录和写入的逻辑是正常的,但是不完美。

还有一些要完善的细节,完善好了,再给大家试玩。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案