![消费级(即廉价)UPS 可以在 Linux 上断电时触发自定义脚本吗?](https://linux22.com/image/1374059/%E6%B6%88%E8%B4%B9%E7%BA%A7%EF%BC%88%E5%8D%B3%E5%BB%89%E4%BB%B7%EF%BC%89UPS%20%E5%8F%AF%E4%BB%A5%E5%9C%A8%20Linux%20%E4%B8%8A%E6%96%AD%E7%94%B5%E6%97%B6%E8%A7%A6%E5%8F%91%E8%87%AA%E5%AE%9A%E4%B9%89%E8%84%9A%E6%9C%AC%E5%90%97%EF%BC%9F.png)
我本质上试图构建一个穷人的服务器故障转移解决方案。
我所在的非营利组织计划托管多个 Web 应用程序。为了节省托管成本,我们决定在内部托管网站。为了在筹集到资金之前获得合适的服务器机房,我们设置了两台桌面服务器,并在虚拟机上运行应用程序。
就性能而言,这些机器及其所托管的 FiOS Business 连接完全满足了我们当前的需求,而且它们位于较冷的干燥区域,因此冷却不是问题。未来最大的问题是缺乏电池备份。这些应用程序本身并不是任务关键型的,而且设计得相当强大,在电源故障时可以完全恢复。但是,我们组织的网站也托管在这台服务器上,非常重要,需要某种冗余备份。
我想构建一个系统,在发生电源故障时,UPS 会为服务器和网络设备提供应急电源,并通知服务器电源故障。然后,服务器将对 Amazon Route 53 DNS 服务进行 API 调用,并将流量从发生电源故障的服务器重新路由到 Heroku 或 Pagoda Box 实例。这些实例将使用定期推送给它们的内容运行我们网站的精简版。
我们运行的是 Linux 环境。那么,消费级 UPS 如何在电源故障时触发自定义脚本,从而使故障转移链生效?
答案1
您可以配置apcupsd
每当 APC 品牌 UPS 检测到电源故障或主电源恢复时运行自定义脚本(以及许多其他与 UPS 相关的活动)。然后这些脚本可以执行您能够自动执行的任何其他操作。
APC 在不同价格范围内提供各种产品;如果这是您购买时的一个重要因素,请务必在购买 UPS 之前检查兼容性。
当然,我相信还有其他的选择;这只是一种可能性,而且我有一些亲身经历。
还要考虑您的 ISP 网络在发生大规模停电时是否能够正常运行。您可能能够为自己的网络设备提供应急电源,但这可能并不够——如果您没有互联网连接,您更改 DNS 的尝试显然会失败。根据您的特定可靠性需求,可能值得考虑在您自己的网络外部的主机上运行某种“您还在线吗?”测试(这也可以处理例如有人意外或故意切断电缆的情况)作为辅助后备机制。