apt install nut
vi /etc/nut/nut.conf MODE=netclient
vi /etc/nut/ups.conf maxretry = 3
vi /etc/nut/upsd.conf LISTEN 192.168.1.100 3493
vi /etc/nut/upsd.users [slave] password = **mot de passe** allowfrom = slaves upsmon slave
vi /etc/nut/upsmon.conf MONITOR mge@192.168.1.100 1 slave **mot de passe** slaves SHUTDOWNCMD "/sbin/shutdown -h now" HOSTSYNC 15 #POWERDOWNFLAG /etc/nut/killpower FINALDELAY 5 NOTIFYCMD /sbin/upssched NOTIFYMSG ONBATT "%s is on battery" NOTIFYMSG ONLINE "%s is back online" NOTIFYMSG LOWBATT "%s has a low battery!" NOTIFYMSG SHUTDOWN "System is being shutdown!" NOTIFYFLAG ONLINE SYSLOG+EXEC NOTIFYFLAG ONBATT SYSLOG+EXEC NOTIFYFLAG LOWBATT SYSLOG+EXEC NOTIFYFLAG FSD SYSLOG+WALL+EXEC NOTIFYFLAG COMMOK SYSLOG+EXEC NOTIFYFLAG COMMBAD SYSLOG+EXEC NOTIFYFLAG SHUTDOWN SYSLOG+EXEC NOTIFYFLAG REPLBATT SYSLOG+EXEC NOTIFYFLAG NOCOMM SYSLOG+EXEC
vi /etc/nut/upssched.conf
# les scripts
CMDSCRIPT /bin/upssched-cmd
# les mandats
LOCKFN /var/lib/nut/upssched.lock
PIPEFN /var/lib/nut/upssched.pipe
# shutdown propre apres 5mn en ONBATT
AT ONBATT * START-TIMER shutdown 300
# annulation des actions si EDF OK
AT ONLINE * CANCEL-TIMER onbatt
AT ONLINE * CANCEL-TIMER shutdown
vi /bin/upssched-cmd
#! /bin/sh
#
# This script should be called by upssched via the CMDSCRIPT directive.
#
# Here is a quick example to show how to handle a bunch of possible
# timer names with the help of the case structure.
#
# This script may be replaced with another program without harm.
#
# The first argument passed to your CMDSCRIPT is the name of the timer
# from your AT lines.
case $1 in
upsgone)
logger -t upssched-cmd "The UPS has been gone for a while"
;;
batths)
logger -t upssched-cmd "La Batterie de l'onduleur est HS"
echo "Batt Onduleur" | mail -s "La Batterie de l'onduleur est HS" damien.cellier@icloud.com
;;
commbad)
logger -t upssched-cmd "Envoi Avertissement via mail"
echo "Communication Onduleur KO" | mail -s "la communication avec l'onduleur est KO" damien.cellier@icloud.com
;;
commok)
logger -t upssched-cmd "Envoi Avertissement via mail"
echo "Communication Onduleur OK" | mail -s "la communication avec l'onduleur est OK" damien.cellier@icloud.com
;;
onbatt)
logger -t upssched-cmd "Envoi Avertissement via mail"
echo "Coupure EDF" | mail -s "ONDULEUR Proxmox HS" damien.cellier@icloud.com
;;
online)
logger -t upssched-cmd "Envoi retour a la normal via mail"
echo "EDF OK" | mail -s "ONDULEUR Proxmox OK" damien.cellier@icloud.com
;;
shutdown)
logger -t upssched-cmd "Shutting down using: upsmon -c fsd"
upsmon -c fsd
;;
shutdown1)
logger -t upssched-cmd "Shutting down using: upsmon -c fsd"
umount /mnt/pve/data
;;
shutdown2)
logger -t upssched-cmd "Shutting down using: upsmon -c fsd"
umount /mnt/pve/data2
;;
stopusb)
logger -t upssched-cmd "Arret du port usb"
upsdrvctl stop
;;
startusb)
logger -t upssched-cmd "Relance du port usb"
upsdrvctl start
;;
delay)
logger -t upssched-cmd "Ups.delay.shutdown = 30"
upsrw -s ups.delay.shutdown=30 -u admin -p xxxmdpxxx mge
;;
*)
logger -t upssched-cmd "Unrecognized command: $1"
;;
esac