我有一个带有USB插头UPS的NAS。 我在我的树莓上安装了坚果客户端(只有客户端)来监控UPS。 我必须将UPS插入NAS,因为它是唯一识别我的UPS的设备(中国通用,不幸的是在我的国家没有选择)。 没办法让它直接插在树莓上。 因为我只在我的树莓中安装了坚果客户端,所以/ etc / nut是空的。我创建了3个文件:
nut.conf
MODE=netclient
upsmon.conf
MONITOR login@nas_ip 1 admin password slave
SHUTDOWNCMD "/sbin/shutdown -h now"
NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
NOTIFYFLAG ONLINE SYSLOG+WALL+EXEC
NOTIFYCMD "/etc/nut/notifycmd"
notifycmd脚本:
#!/bin/bash
#
# NUT NOTIFYCMD script
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin
trap "exit 0" SIGTERM
if [ "$NOTIFYTYPE" = "ONLINE" ]
then
echo $0: power restored | wall
# curl command to send me a sms
# Cause all instances of this script to exit.
killall -s SIGTERM `basename $0`
fi
if [ "$NOTIFYTYPE" = "ONBATT" ]
then
echo $0: 40 minutes till system powers down... | wall
#curl command to send me a sms
# Loop with one second interval to allow SIGTERM reception.
let "n = 2400"
while [ $n -ne 0 ]
do
sleep 1
let "n--"
done
echo $0: commencing shutdown | wall
sleep 10
upsmon -c fsd
fi
我的UPS足够强大,可以等待40分钟,然后远程地将鼻子和树莓隔开。 当断电和恢复供电时,我会收到短信。
但有一个特殊情况:如果覆盆子在电池上失去与ups的连接,树莓几乎立即关闭......我认为这是一种保护行为,但我想插入一个卷曲在关机前发送短信的命令,如“断电和连接故障” (我知道命令本身,这不是问题) 我知道我必须在upsmon.conf中添加类似“DEADTIME”或“NOTIFYFLAG NOCOMM”或“COMMBAD”的内容,但不知道该选择什么... 我需要在“notifycmd”文件中添加什么内容?
由于
答案 0 :(得分:0)
如果您认为这对Raspberry Pi有好处,则可以提高DEADTIME的值。来自最近的upsmon.conf:
# upsmon requires a UPS to provide status information every few seconds
# (see POLLFREQ and POLLFREQALERT) to keep things updated. If the status
# fetch fails, the UPS is marked stale. If it stays stale for more than
# DEADTIME seconds, the UPS is marked dead.
#
# A dead UPS that was last known to be on battery is assumed to have gone
# to a low battery condition. This may force a shutdown if it is providing
# a critical amount of power to your system.
如果您确定UPS的电池足以容纳Raspberry Pi(即使您无法与之交谈),则DEADTIME可能会增加到120(2分钟)甚至300(5分钟)。请记住,该值应该是POLLFREQ和POLLFREQALERT的倍数。
此后,upsmon将有更多时间运行您的NOTIFYCMD。 现在,只需为COMMBAD添加一个保护套:
此外,考虑将NOTIFYCMD仅仅用于通知某些内容,而不要执行肮脏的工作(例如,关闭系统)。