NUT
UPS가 배터리 전원을 사용하고 라인 전원으로 돌아올 때 간단히 호출하도록 Linux에서 UPS 모니터링 소프트웨어를 구성하고 싶습니다 . 예를 들어 upsmon
다음과 같은 메시지를 받았을 때시스템 로그:
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
그리고 아마도 가장 좋은 솔루션은 사용자 정의 syslog 규칙일까요?
그러나 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