飞牛 NAS 用便宜 UPS 实现停电自动关机,实测可用

2026-02-09 14:29:46 0点赞 1收藏 1评论

为什么要搞这个方案

家用 NAS 最怕突然断电:轻则丢缓存,重则伤硬盘。正规做法是配一台带通讯口的 UPS,停电时 UPS 通知 NAS,NAS 再执行关机。但带通讯的 UPS 一般要贵一百多,很多人只想要「停电时别突然断电」这一个功能。

于是有了折中方案:买不带通讯口的便宜 UPS + 在飞牛 NAS 上跑一个自研应用。思路很简单:

  • 停电时,市电没了,但 NAS 接在 UPS 上还能撑几分钟。

  • 同一时间,光猫、路由器多半没接 UPS,会立刻断电,网络就断了。

  • 应用在 NAS 上定期 Ping 外网或网关,一旦发现连续 Ping 不通,就认为「很可能是停电了」,然后通知系统正常关机,并把这次事件记下来,等来电开机后还能查。

这样用「网络断开」间接判断停电,省了 UPS 通讯线的钱,逻辑也说得通。


核心需求(应用要做到什么)

可以归纳成四条:

  1. 发现停电:通过 Ping 失败判断「疑似停电」,而不是等 NAS 自己没电。

  2. 正常关机:触发的是系统关机流程,不是直接掉电,保护硬盘。

  3. 记录可查:每次关机原因、时间要记下来,恢复供电后能翻记录。

  4. 重要记录不丢:停电、关机这类关键信息要持久化到磁盘,不能被日常的「一切正常」流水冲掉或挤没。

前两条决定「能不能用」,后两条决定「事后能不能复盘」。


1.1.4 能跑,但有个浪费问题

早期版本(例如 1.1.4)已经能实现:Ping 失败若干次后触发关机,并把状态写进文件。但实现方式是每 10 秒往磁盘写一次当前状态

问题在于:绝大多数时间并没有停电,写进去的几乎都是「Ping 成功 / SUCCESS」。这些记录对排查没帮助,却带来:

  • 频繁的磁盘写入,对 SSD/硬盘寿命和 I/O 都不友好;

  • 日志文件被大量无意义的「成功」占满,真正有用的异常和关机记录反而不好找。

所以下一版要解决的是:平时少写盘甚至不写盘,只在「有事」的时候才写。


1.1.9 的改进:按需写盘

到 1.1.9 把「什么时候写内存、什么时候写盘」分清楚了。

平时:成功记录只放内存

  • 在没有任何「异常事件」之前,所有 Ping 成功的记录只存在应用的内存里,不写文件。

  • Web 管理界面通过 API 直接读这份内存里的列表,所以列表展示很快,也不产生磁盘 I/O

  • 这样日常运行就是:定时 Ping,成功就只更新内存,界面从内存取数,磁盘不动。

只有这四种情况才写盘

飞牛 NAS 用便宜 UPS 实现停电自动关机,实测可用

总结:普通的 Ping 成功只留在内存;只有异常、关机、清理、启停才动磁盘。 这样既保证了关键信息不丢,又避免了无意义的频繁写盘。

记录怎么展示

  • 最近一次下发关机命令会在列表里置顶显示,方便一眼看到「上次是怎么关的」。

  • 逻辑是:连续多次(例如三次)Ping 失败后下发关机;而从第一次 Ping 失败开始就已经往磁盘写记录了,所以即使关机前再断一次电,至少「发生过失败」这件事已经落盘。

  • 来电、系统和服务重新启动之后,从磁盘读出来的就是完整的一条线:失败 → 再失败 → 触发关机,时间线清晰。


一次真实停电的验证

有一次遇到真实停电,当时 UPS 还没到,NAS 和光猫一起断电,相当于一次「被动测试」:

  • 上午 10:27 有一次手动断网测试,产生的记录已经写进磁盘,所以还在。

  • 10:29 监控服务重新启动,按设计会写一条「监控已启动」到磁盘,所以也留下了。

  • 在这之后、断电之前,那些只存在内存里的 Ping 成功记录,因为没机会写盘,随着断电一起丢了。

  • 下午 17:16 恢复供电、NAS 开机,监控再次启动,又触发了一次写盘。

这说明:该写盘的时候(失败、关机、启停)确实会写;平时只在内存里的设计也按预期工作。 当然,如果是「突然断电」且当时内存里还有未写盘的重要状态,理论上会丢,这属于已知限制,后续可以从策略上再优化(例如对「失败」更敏感,或缩短某类状态的写盘间隔等)。


小结

飞牛 NAS + 便宜无通讯 UPS,配合一个「Ping 检测 + 断网判定停电 + 触发关机 + 记录落盘」的自研应用,可以实现停电自动关机,实测逻辑成立、能正常关机并留下可查记录。


顺便说一句:外网访问

飞牛 NAS 和便宜 UPS 一样,很多人也是图省钱、图省事。如果你还想在单位或出门时访问家里的这台 NAS(看文件、备份照片之类),又不想折腾公网 IP 或买内网穿透年费,可以试试 星空组网:免费版支持约 20 台设备,P2P 直连不限速,移动宽带也能用,和本文「用便宜 UPS 搞定停电关机」算同一类思路——少花钱把事办了。客户端和应用市场搜「星空组网」即可,官网可自行搜索。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
1评论

  • 精彩
  • 最新
  • 。。。esp32+usb充电头 20以内就搞定了 又快又稳

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
1
扫一下,分享更方便,购买更轻松