docker-compose.yaml
version: "3"
services:
nut:
container_name: nut-upsd
image: docker.io/mowoau/nut-upsd
restart: unless-stopped
ports:
- "3493:3493"
devices:
- /dev/bus/usb/xxx/xxx:/dev/bus/usb/xxx/xxx
volumes:
- /path/etc/:/etc/nut/
- /path/log:/var/log/nut
- /path/cmd:/opt/cmd
environment:
UPS_NAME: ""
UPS_DESC: ""
Devices: Use lsusb command to find the attached UPS
upssched.conf (add it to "/path/etc/")
CMDSCRIPT /opt/cmd/ups_status.sh
PIPEFN /var/run/nut/upssched.pipe
LOCKFN /var/run/nut/upssched.lock
AT ONBATT * EXECUTE emailonbatt
AT ONLINE * EXECUTE emailonline
AT LOWBATT * EXECUTE emaillowbattery
AT REPLBATT * EXECUTE replbatt
ups_status.sh (add it to "/path/cmd/")
#!/bin/sh
mail_server='IP'
from_mail='mail'
to_mail='mail'
date=`date '+%Y/%m/%d %H:%M:%S'`
date_header=`date +'%a, %-d %b %Y %H:%M:%S %z'`
mail_template="From: $from_mail\r\nTo: $to_mail\r\nMime-Version: 1.0\r\nContent-Type: text/plain\r\nDate: $date_header\r\nSubject: $date"
ups_status=`/usr/bin/upsc ups_name`
case $1 in
emailonbatt)
echo $date >> /var/log/nut/poweroffline.log
echo -e "$mail_template UPS - Power is down\r\n\n$ups_status" | sendmail -S $mail_server -f $from_mail $to_mail
;;
emailonline)
echo $date >> /var/log/nut/powerbackonline.log
echo -e "$mail_template UPS - Power is back\r\n\n$ups_status" | sendmail -S $mail_server -f $from_mail $to_mail
;;
emaillowbattery)
echo $date >> /var/log/nut/lowbattery.log
echo -e "$mail_template UPS - Low Battery\r\n\n$ups_status" | sendmail -S $mail_server -f $from_mail $to_mail
;;
replbatt)
echo -e "$mail_template UPS - Replace Battery\r\n\n$ups_status" | sendmail -S $mail_server -f $from_mail $to_mail
;;
*)
echo -e "$mail_template UPS Unrecognized event: $1\r\n\n$ups_status" | sendmail -S $mail_server -f $from_mail $to_mail
;;
esac
Content type
-
Digest
Size
-
Last updated
almost 5 years ago
docker pull mowoau/nut-upsd