Notifications

NUT 和即時通知

  • August 29, 2021

我想NUT在 Linux 下配置 UPS 監控軟體,以便在 UPS 使用電池電源時簡單地呼叫我,然後當它返迴線路電源時。例如,當我從syslogupsmon收到以下消息時:

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 命令可以實現我想要做的?

當然你可以使用 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

引用自:https://unix.stackexchange.com/questions/666776