NUT 和即时通知

NUT 和即时通知

我想NUT在 Linux 下配置 UPS 监控软件,以便在 UPS 使用电池电源以及返回线路电源时简单地寻呼我。例如,当我收到来自upsmonin 的以下消息时系统日志:

Aug 19 05:43:27 jupsden upsmon[466]: UPS jupsden@localhost on battery
Aug 19 05:43:42 jupsden upsmon[466]: UPS jupsden@localhost on line power

而且,也许最好的解决方案是自定义系统日志规则?

但是,我在 中看到的 NUT 特定配置通知的所有示例/etc/nut/upssched.conf都是在 UPS 电池电量达到某个低阈值时启动计时器,然后将自定义参数传递给自定义脚本upssched-cmd,正常关闭系统等。 “计时器”方法,我可以在以下位置执行以下操作upssched.conf

AT ONBATT * START-TIMER onbatterypower 0
AT ONLINE * CANCEL-TIMER onlinepower

...或者是否有一些不同/更好的 NUT conf 命令可以实现我想要做的事情?

答案1

当然,您可以使用 0 长度的计时器,但如果您想要立即反应,也可以使用语法AT ... EXECUTE

如果您希望每当电源状态发生变化时立即页面,您可以使用该AT <notifytype> <upsname> EXECUTE <command>语法。换句话说,你可以这样做upssched.conf

CMDSCRIPT /usr/local/sbin/custom-upssched-cmd

[...]

AT ONBATT * EXECUTE start_panicking
AT ONLINE * EXECUTE panic_over

然后你的/usr/local/sbin/custom-upssched-cmd脚本(记住chmod a+x它!)将包含如下内容:

#!/bin/sh
case "$1" in
    start_panicking)
        logger -t custom-upssched-cmd "UPS went on battery power at this time"
        # add here a command to send a suitably alarming pager message
        ;;
    panic_over)
        logger -t custom-upssched-cmd "UPS reports power is back"
        # add here a command to send a calming pager message
        ;;
    *)
        logger -t custom-upssched-cmd "The administrator forgot to add a suitable message for upssched.conf command $1"
        ;;
esac

相关内容