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