Ricerca nel sito web

Gestisci il tuo sistema di backup della batteria APC con questo comando Linux


Proteggiti dagli incidenti elettrici eseguendo una semplice utility: apcupsd.

Agli albori dei personal computer, ho scritto il corso di formazione IBM per il PC IBM originale. Per completare il corso in tempo per la formazione IBM, ComputerLand e Sears, IBM mi ha dato un PC da portare a casa in modo che potessi lavorare la sera e nei fine settimana: probabilmente il primo caso in cui qualcuno ha un PC IBM a casa propria.

Ho svolto questo lavoro a Boca Raton, in Florida, dove la piccola compagnia elettrica locale era comunemente conosciuta come "Florida Flicker and Flash", con una buona ragione. Le brevi ma frequenti interruzioni di corrente mi hanno fatto perdere il lavoro più di una volta. Sfortunatamente, non esistevano sistemi di continuità (UPS) per mantenere il mio PC attivo e funzionante durante questi incidenti fastidiosi e talvolta distruttivi.

Un UPS mantiene un computer in funzione abbastanza a lungo da resistere a eventi di alimentazione minori, come interruzioni e sovratensioni di pochi secondi fino a 20 o 30 minuti. Nel caso di queste interruzioni più lunghe, la funzione dei moderni UPS è quella di avvisare il computer di spegnersi prima che l'UPS si esaurisca. In caso contrario, l'improvvisa perdita di alimentazione può portare alla perdita di dati.

Il computer e l'UPS comunicano tramite un cavo seriale o USB. Un servizio di sistema gestisce le comunicazioni e invia i comandi appropriati sia all'UPS che al computer. I computer Windows generalmente utilizzano una versione gratuita del software fornita dal fornitore UPS. Tuttavia, l'utilità apcupsd supporta Linux, Windows, BSD, Solaris e macOS, garantendo coerenza tra i sistemi operativi.

Questo set di strumenti supporta i sistemi UPS APC e fornisce vari gradi di supporto per i sistemi UPS prodotti da Tripp-Lite, CyberPower e altri. Attualmente dispongo di sistemi UPS di tutti e tre questi produttori che funzionano su reti di cui sono responsabile. Non ho trovato un elenco dei sistemi UPS supportati. Né la documentazione di apcupsd è utile al riguardo e non ho visto nulla di definitivo in nessuna ricerca sul web.

Tenere presente che la parte "APC" dei nomi di questi strumenti indica che sono stati progettati per i sistemi UPS APC. La loro efficacia sui sistemi di altri fornitori di UPS dipende dalla precisione con cui seguono l'interfaccia di gestione APC.

Installa apcupsd su Linux

Poiché è disponibile nel repository Fedora, l'installazione di apcupsd è semplice. Emettere il seguente comando come root per installare apcupsd:

# dnf -y installa apcupsd

I seguenti comandi avviano e abilitano apcupsd in modo che si riavvii dopo il riavvio.

# systemctl start apcupsd ; systemctl abilita apcupsd

Anche altre distribuzioni hanno apcupsd nei loro repository.

Utilizzo di base

A questo punto il demone apcupsd è stato avviato, quindi puoi interagire con esso utilizzando il comando apcaccess. Questo comando senza alcuna opzione genera un rapporto di stato che descrive lo stato attuale dell'UPS.

[root@test ~]# apcaccess
APC      : 001,033,0831
DATE     : 2021-11-30 21:08:10 -0500  
HOSTNAME : test.both.org
VERSION  : 3.14.14 (31 May 2016) redhat
UPSNAME  : test.both.org
CABLE    : USB Cable
DRIVER   : USB UPS Driver
UPSMODE  : Stand Alone
STARTTIME: 2021-11-27 13:08:58 -0500  
MODEL    : CP1500PFCLCDa
STATUS   : ONLINE
LINEV    : 120.0 Volts
LOADPCT  : 32.0 Percent
BCHARGE  : 100.0 Percent
TIMELEFT : 22.5 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME  : 0 Seconds
OUTPUTV  : 120.0 Volts
DWAKE    : -1 Seconds
LOTRANS  : 100.0 Volts
HITRANS  : 139.0 Volts
ALARMDEL : 30 Seconds
NUMXFERS : 2
XONBATT  : 2021-11-30 13:46:03 -0500  
TONBATT  : 0 Seconds
CUMONBATT: 5 Seconds
XOFFBATT : 2021-11-30 13:46:06 -0500  
SELFTEST : NO
STATFLAG : 0x05000008
SERIALNO : CXXLT2001977
NOMINV   : 120 Volts
NOMPOWER : 1000 Watts
END APC  : 2021-11-30 21:08:17 -0500  
[root@test ~]#

Nell'output sopra sono presenti tre campi di particolare interesse per la gestione del backup della batteria. La percentuale di carico (LOADPCT) indica la quantità di carico posizionata sull'UPS. Quando l'unità è collegata e collegata all'alimentazione, la carica della batteria (BCHARGE) dovrebbe essere al 100%, ma sarà inferiore quando viene rimossa l'alimentazione esterna. Il TIMELEFT è il campo di maggior preoccupazione. In questo esempio, in caso di interruzione dell'alimentazione, l'UPS può funzionare con il carico corrente per 22,5 minuti.

Altri elementi da considerare includono la riga CUMONBATT, che rappresenta il tempo cumulativo in cui l'UPS ha funzionato a batteria. Questo campo accumula tutti i tempi di interruzione dell'alimentazione su più eventi. La linea TONBATT è l'ora di un evento di perdita di potenza in corso.

La pagina man di apcaccess descrive il resto degli elementi di dati in questo output. I dati visualizzati possono differire a seconda del modello di UPS.

Gestire l'UPS

Nell'output del comando apcaccess sopra, la riga SELFTEST dice NO. Questa risposta significa che non è stato eseguito un test automatico su questo UPS dall'ultimo avvio di acpupsd. Di solito, quello sarebbe l'orario dell'ultimo avvio del sistema. I test automatici vengono eseguiti una volta ogni sette giorni sulla maggior parte dei sistemi UPS, ma è possibile avviarne uno utilizzando il comando apctest.

Sfortunatamente, il comando apctest è in conflitto con il demone apcupsd, quindi è necessario arrestare apcupsd temporaneamente. Quindi puoi avviare apctest, che utilizza un'interfaccia basata su menu.

[root@myserver ~]# systemctl stop apcupsd 
[root@myserver ~]# apctest 


2021-12-01 06:36:47 apctest 3.14.14 (31 May 2016) redhat 
Checking configuration ... 
sharenet.type = Network & ShareUPS Disabled 
cable.type = USB Cable 
mode.type = USB UPS Driver 
Setting up the port ... 
Doing prep_device() ... 

You are using a USB cable type, so I'm entering USB test mode. 
Hello, this is the apcupsd Cable Test program. 
This part of apctest is for testing USB UPSes. 

Getting UPS capabilities...SUCCESS 

Please select the function you want to perform. 

1)  Test kill UPS power 
2)  Perform self-test 
3)  Read last self-test result 
4)  View/Change battery date 
5)  View manufacturing date 
6)  View/Change alarm behavior 
7)  View/Change sensitivity 
8)  View/Change low transfer voltage 
9)  View/Change high transfer voltage 
10) Perform battery calibration 
11) Test alarm 
12) View/Change self-test interval 
Q) Quit 

Select function number: 

Avvertenza: fare attenzione a non scegliere accidentalmente la voce 1 perché ciò spegnerà l'UPS e, quindi, il computer.

Immettere 2 e premere Invio per eseguire un test automatico dell'UPS. Tieni presente che il menu viene visualizzato nuovamente prima che l'autotest abbia avuto abbastanza tempo per essere completato, quindi il risultato è IN CORSO. Questo risultato proviene dall'UPS CyberPower. Il programma ha atteso il completamento del test automatico su un UPS APC prima di tornare al menu.

<snip>
Select function number: 2


This test instructs the UPS to perform a self-test
operation and reports the result when the test completes.

Clearing previous self test result...CLEARED
Initiating self test...INITIATED
Waiting for test to complete...COMPLETED
Result of last self test: IN PROGRESS

1)  Test kill UPS power
2)  Perform self-test
3)  Read last self-test result
4)  View/Change battery date
5)  View manufacturing date
6)  View/Change alarm behavior
7)  View/Change sensitivity
8)  View/Change low transfer voltage
9)  View/Change high transfer voltage
10) Perform battery calibration
11) Test alarm
12) View/Change self-test interval
 Q) Quit

L'UPS emette un segnale acustico per indicare che il test automatico è terminato. Il tipo di segnale acustico specifico può variare a seconda del fornitore e del modello dell'UPS. Il mio CyberPower CP1500PFCLCDa emette due brevi segnali acustici. L'allarme non suonerà se è stato silenziato manualmente.

Una volta completato l'autotest, utilizzare la voce di menu 3 per leggere il risultato. In questo caso, il mio UPS ha superato l'autotest.

Select function number: 3

Result of last self test: PASSED

1)  Test kill UPS power
2)  Perform self-test
3)  Read last self-test result
4)  View/Change battery date
5)  View manufacturing date
6)  View/Change alarm behavior
7)  View/Change sensitivity
8)  View/Change low transfer voltage
9)  View/Change high transfer voltage
10) Perform battery calibration
11) Test alarm
12) View/Change self-test interval
 Q) Quit

Select function number:

La maggior parte di queste altre opzioni di menu non funzionano sui miei dispositivi CyberPower, ma funzionano sui dispositivi UPS APC, come previsto.

La calibrazione della batteria può essere utilizzata sui sistemi UPS supportati se la stima del tempo di funzionamento rimanente effettuata dall'UPS non è corretta. Questa opzione disconnette l'UPS dall'alimentazione principale e fa funzionare il computer con la batteria finché non si scarica fino a circa il 10% della sua carica massima. Questo metodo consente una stima più accurata del tempo di funzionamento a batteria.

Assicurati di riavviare apcupsd dopo essere uscito dal menu apctest.

Pensieri finali

La suite di programmi apcupsd fornisce strumenti semplici per monitorare e gestire i sistemi UPS APC e funziona a vari livelli con i sistemi UPS di altri fornitori. Fornisce una protezione intelligente dagli incidenti legati all'alimentazione e uno spegnimento gestito se un'interruzione dura fino al limite della carica della batteria.

Il demone in background apcupsd funziona con la maggior parte dei moderni sistemi UPS e può avviare una sequenza di spegnimento del computer quando la batteria dell'UPS diventa troppo scarica. Ho riscontrato che questo è il caso di tutti e tre i fornitori per i quali dispongo di sistemi UPS. Altre funzioni, quelle accessibili tramite il programma apctest, sono problematiche. Alcune di queste funzioni potrebbero funzionare, altre no. Dipende dalla marca e dal modello del tuo sistema UPS.

La considerazione più importante per me è che il software apcupsd possa comunicare con l'UPS abbastanza da avviare un comando di spegnimento del computer quando la batteria dell'UPS si scarica. La seconda cosa che mi interessa sono le informazioni disponibili dal comando apcaccess. Il resto è semplicemente bello da avere.

Per coloro che preferiscono un'interfaccia GUI, nel repository Fedora sono disponibili sia l'interfaccia web CGI che quella GUI.

Il software apcupsd è maturo e stabile. Lo sviluppo è limitato alla correzione dei bug. Sarebbe bello avere un supporto migliore per i sistemi UPS da fornitori diversi da APC. Ciò richiederebbe che i fornitori collaborassero e supportassero l'intera interfaccia di comunicazione del software APC.

Il supporto è disponibile sulla pagina SourceForge del progetto tramite le mailing list.