
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