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