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