Il pacchetto apcupsd ufficiale per RedHat 4 EL non contiene tutte le componenti (ad esempio l'interfaccia web) ed è di una vecchia versione. Preferita la pacchettizzazione recente trovata sul sito dag.wieers.com. Il pacchetto non ha richiesto dipendenze.
Al server sono collegati due gruppi di continuità, un APC-3000 con cavetto USB e un APC-1400 con cavetto seriale. Si vogliono avere due demoni apcupsd
in esecuzione contemporaneamente: si creano due directory di configurazione copiandoci tutto il contenuto della /etc/apcupsd/
:
/etc/apcupsd/1400/
/etc/apcupsd/3000/
Si configurano i due file apcupsd.conf
, ecco le parti rilevanti:
UPSCABLE usb UPSTYPE usb DEVICE SCRIPTDIR /etc/apcupsd/3000 PWRFAILDIR /etc/apcupsd/3000 BATTERYLEVEL 10 MINUTES 5 TIMEOUT 600 UPSCLASS standalone NETSERVER on NISIP 0.0.0.0 NISPORT 3551 UPSNAME APC_3000
UPSCABLE smart UPSTYPE apcsmart DEVICE /dev/ttyS0 SCRIPTDIR /etc/apcupsd/1400 PWRFAILDIR /etc/apcupsd/1400 BATTERYLEVEL -1 MINUTES -1 TIMEOUT 0 UPSCLASS standalone NETSERVER on NISIP 0.0.0.0 NISPORT 3552 UPSNAME APC_1400
Inoltre si sostituisce lo script /etc/apcupsd/1400/apccontrol
con il file fornito come esempio safe.apccontrol
.
In pratica l'UPS APC-1400 indicherà al proprio demone quando la tensione viene a mancare, ma a questo non seguirà alcuna azione. Sono invece le impostazione dell'APC-3000 che determinano i tempi di shutdown.
I due demoni apcupsd
sono consultabili via network sulle porte TCP 3551 (default) e 3552 rispettivamente.
Si deve modificare lo script /etc/init.d/apcupsd
relativamente alle azioni di start e stop, ecco un estratto:
CONFIG_FILES="/etc/apcupsd/*/apcupsd.conf" case "$1" in start) rm -f /etc/apcupsd/powerfail rm -f /etc/nologin echo -n "Starting UPS monitoring:" for conf in $CONFIG_FILES; do subdir="$(dirname "$conf")" instance="$(basename "$subdir")" daemon --force /sbin/apcupsd -f "$conf" RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/apcupsd.$instance done echo ;; stop) echo -n "Shutting down UPS monitoring:" for conf in $CONFIG_FILES; do subdir="$(dirname "$conf")" instance="$(basename "$subdir")" killproc apcupsd rm -f /var/lock/subsys/apcupsd.$instance done echo rm -f $APCPID ;;
Si punta il browser su http://host/apcupsd/multimon.cgi
, ovviamente deve essere attivo un server web. Per indicare che ci sono due demoni da monitorare, si modifica il file /etc/apcupsd/hosts.conf
mettendo qualcosa del genere:
MONITOR 127.0.0.1 "APC-3000" MONITOR 127.0.0.1:3552 "APC-1400"
Configurato un server Windows 2000 come client di apcupsd
, installato il pacchetto winapcupsd-3.14.4.exe e configurato il file C:\apcupsd\etc\apcupsd.conf
, in particolare:
UPSCABLE ether UPSTYPE net DEVICE 192.168.123.123:3552 BATTERYLEVEL -1 MINUTES -1 TIMEOUT 60 NISIP 127.0.0.1 NETTIME 10
Il client ignora le informazioni fornite dall'UPS su livello della batteria e minuti rimasti (stime), ma inizia uno shutdown dopo 60 secondi dal bkack-out. Il client controlla lo stato dell'UPS dal server ogni 10 secondi e condivide solo con se stesso queste informazioni (NISIP 127.0.0.1, necessario perché funzioni l'applicativo da systray).