在 UPS 断电后立即关闭 Linux 服务器

在 UPS 断电后立即关闭 Linux 服务器

我想在断电后立即关闭使用 UPS 的 Linux 服务器。UPS 可以额外运行 30 分钟。我知道有些 UPS 可以自动关闭服务器,但我现在的情况不是这样。

因此,我打算 ping 我的路由器(或网络中的 PC),如果 ping 失败,则意味着断电(也可能是网络问题,但没关系),脚本将运行

"#shutdown now"

我怎样才能做到这一点?

编辑:UPS 正在为两台小型服务器供电,所以我无法在其上使用串行端口(至少不能同时为两台服务器供电)。我们在塞浦路斯的发电厂被爆炸摧毁,因此在我为每台服务器配备 UPS 之前,我需要一个临时解决方案。这就是我问这个问题的原因。

答案1

你使用的是 apc ups 吗?如果是的话,看看 apcupsd,它很棒,可以轻松地完成这个和许多其他类似的事情。

正如 bmdan 所说,您的 ups 无法做到这一点的可能性很小。

答案2

许多 Linux 系统包括看门狗包。此包将通过运行测试来监视某些情况,如果发生故障,则默认重新启动系统。

使用 repair-binary 选项,您可以告诉它运行类似的操作shutdown -h而不是重新启动。Watchdog 默认包含 ping 测试。

答案3

监控可以做到这一点,并且比 cron 更可取。

尝试如下配置行:

Check host router with address 192.168.1.1
     if failed icmp type echo with timeout 120 seconds
       then exec "/sbin/shutdown now"
       alert root@localhost

确实最好的这里的解决方案是 APCUPSD,您应该获得具有监控功能的东西(USB、串行、以太网)。

答案4

制作一个 bashsscript 并将其添加到 chron:

 $1 = "some.host.ip.address";

    if ! ping -c 1 -w 5 "$1" &>/dev/null ; then 

      shutdown -h now

    fi

请记住,如果您的路由器而不是服务器出现故障,那么您将会瘫痪……

相关内容