如何检测电源故障?

How to detect a power failure?

我希望能够在停电时执行操作,即当停电时,因为我的网络路由器使用 UPS,所以它不知道停电,所以我希望能够以某种方式存储停电通过 php 将数据写入文本文件,所以无论如何都可以通过 PHP 将断电数据写入文本文件??

这是 Mikrotik 的屏幕截图,其中 windows 已打开关于问题的不同内容:

没有正确的方法来做到这一点。
首先,你需要一台外部机器。
为什么?因为如果一台机器因为没电而关机,它就不能再执行代码了!

所以这就是我的想法:
如果你在路由器上有一个服务器 运行 可以远程访问,你可以简单地 "ping" ("file_get_contents" or "curl") 你的路由器请求。如果出现错误,则表示它不再在线。然后将其存储到文本文件中。

如果您想使用本地笔记本电脑来执行此操作,您只需 "ping" 您的路由器位置(可能是 192.168.0.1,取决于您的路由器),如果它没有响应,那表示它处于离线状态。

大多数 UPS 设备都有 SNMP 服务器,您可以在其中查询简单的统计数据(当然是电源故障)。

有一些 linux 包,例如 nut-snmp,您可以使用它们从 UPS 获取信息。