首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当NUT报告一个低UPS电池时,运行各种shell命令

当NUT报告一个低UPS电池时,运行各种shell命令
EN

Unix & Linux用户
提问于 2014-10-29 11:35:10
回答 2查看 13.9K关注 0票数 6

在Debian服务器上,我成功地安装了nut包,这样我的EllipsePro1200UPS状态就可以通过USB获取(upsc my-ups返回电池级别)。

注意:我还没有测试当停电发生时会发生什么。

此UPS为此Debian服务器以外的其他设备提供电源:一些路由器/交换机和NAS。

在这种情况下,考虑到我认为NUT的工作方式,我应该在NAS上安装NUT并将它声明为NUT从服务器,这样Debian服务器(NUT主服务器)将命令NAS在电池不足时关闭,然后关闭自己。

问题是我不能在NAS上安装NUT (不支持操作系统),但是我可以SSH告诉它关闭。

我如何/在哪里把我自己的剧本(S)和NUT通常会运行的命令关闭它的奴隶?

我唯一能找到的地方是/etc/nut/upsmon.conf文件中的SHUTDOWNCMD

代码语言:javascript
运行
复制
SHUTDOWNCMD "/sbin/shutdown -h +0"

我猜我可以用一个手工脚本代替这个命令,这个脚本将运行SSH-关机命令,并以关闭Debian服务器而结束。

问题是,SHUTDOWNCMD似乎是为最后一次的动作:当电池非常低。联系我自己脚本中的所有其他设备可能比我在耗尽电池之前花费更多的时间。

谢谢

EN

回答 2

Unix & Linux用户

发布于 2015-05-08 10:20:30

您可以尝试在事件触发后使用upssched.conf(5)在计时器上运行自己的脚本。

一个基本的upssched.conf应该是这样的:

代码语言:javascript
运行
复制
CMDSCRIPT /bin/your-script.sh
AT ONBATT * EXECUTE emailonbatt
AT ONBATT * START-TIMER upsonbatt 300
AT ONLINE * EXECUTE emailonline
AT ONLINE * CANCEL-TIMER upsonbatt upsonline

有了这一点,国家统计局将:

  • 在UPS启动电池后,立即运行/bin/your-script.sh emailonbatt
  • 在UPS启动电池5分钟后,运行/bin/your-script.sh upsonbatt
  • 在UPS恢复线路电源后,立即运行/bin/your-script.sh emailonline
  • 在UPS恢复线路电源后,如果upsonbatt计时器仍然处于活动状态,也要立即取消它。否则,运行/bin/your-script.sh upsonline

脚本可以是这样的:

代码语言:javascript
运行
复制
#!/bin/bash
case $1 in
        emailonbatt)
                  mail -s "UPS on battery power" your@email.com
                  ;;
        emailonline)
                  mail -s "UPS on line power" your@email.com
                  ;;
        upsonbatt)
                  ssh root@nas shutdown -h +0
                  ;;
        upsonline)
                  etherwake 01:23:45:AB:CD:EF
                  ;;
esac

AT语句的语法可以在upssched.conf(5)的手册页中找到,可用的通知事件类型可以在upsmon(8)的手册页中找到。

票数 8
EN

Unix & Linux用户

发布于 2014-10-29 15:05:01

你想要做的事情(使用预先设定的钩子)是最优雅的方法。

但是,如果由于没有钩子或这些钩子不适合您的需要,这是不可能的,那么轮询方法也是一种选择。

您可以在/var/log文件中监视NUT组件的输出。

例如,我的( Debian 7上的Salicru UPS )记录如下:

10月28日13:37:49主机名upsmon一七六六:UPS salicru@caramon on caramon

当UPS切换到电池时

10月28日13:39:39主机名upsmon一七六六:UPS salicru@caramon在线电源

当电力恢复的时候。

您可以模拟电源故障,查看日志消息,然后编写一个cron作业,该作业每分钟(或5分钟)运行一次,在日志中查找这些行并执行您想要的操作。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/164788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档