Unterbrechungsfreie Stromversorgungen konfigurieren
Wer eine unterbrechungsfreie Stromversorgung besitzt, nutzt meist die freien »Network UPS Tools«, um mit ihnen zu kommunizieren. Mit diesen Werkzeugen kann man unter anderem die Daten der Stromversorgung auslesen und zum Teil auch ändern.
Die Network UPS Tools dienen zur Kommunikation mit stromliefernden oder -verteilenden Geräten, darunter auch unterbrechungsfreie Stromversorgungen (USVs), wovon die Software ihren Namen ableitet (UPS = Uninterruptible Power Supply). Die wichtigste Anwendung ist dabei wiederum, ein Signal von der USV zu erhalten, wenn die Stromversorgung gestört ist, um angeschlossene Rechner kontrolliert herunterzufahren, bevor der Akku der USV leer ist. Zur Kommunikation besitzt die USV oft einen USB-Anschluss, ältere Modelle oft einen seriellen. In moderne Rechner muss man oft eine separate PCI-Karte mit seriellen Ports einbauen, um überhaupt noch mit älteren USVs kommunizieren zu können.
Der Fokus dieses Tipps soll aber nicht auf der Konfiguration von NUT liegen, diese wird als gegeben vorausgesetzt. Vielmehr soll hier aufgezeigt werden, dass auch USVs eine Firmware besitzt, und diese enthält eine Reihe von Variablen, die ausgelesen und zum Teil auch geändert werden können. Im folgenden wird als Beispiel eine sogenannte Smart UPS genutzt, der wir den Namen »smarty« gegeben haben.
Zunächst kann man sich einmal über die verfügbaren Variablen (und den aktuellen Zustand der USV) informieren. Dazu dient das Kommando upsc
. Es ist kein Passwort nötig, und der Aufruf
upsc smarty | less
liefert eine mehr oder weniger lange Liste von Variablen. Die meisten davon dürften selbsterklärend sein. Von besonderem Interesse ist unter anderem die Zeile
ups.id: UPS_IDEN
wobei UPS_IDEN
der vom Hersteller voreingestellte Name der USV ist, der natürlich je nach Hersteller differieren kann. Diesen Namen können wir ändern, und zwar mit dem Kommando upsrw
. Es ist sinnvoll, diesen Namen in Einklang mit dem in der NUT-Konfiguration festgelegten Namen zu bringen.
Zunächst aber können wir uns mit upsrw
eine Liste aller änderbaren Variablen ausgeben lassen. Dies ist eine Teilmenge der insgesamt vorhandenen Variablen, allerdings wird jede Variable ausführlich mit ihrem Zweck, Typ und erlaubten Werten beschrieben. Bei Strings wird zum Beispiel die Maximallänge angegeben, bei Aufzählungstypen die erlaubten und die aktuell eingestellten Optionen. Der Aufruf dafür ist einfach
upsrw smarty | less
und ein Ausschnitt aus der Antwort sieht ungefähr so aus:
[ups.id] UPS system identifier Type: STRING Maximum length: 8 Value: UPS_IDEN [ups.test.interval] Interval between self tests (seconds) Type: ENUM Option: "1209600" SELECTED Option: "604800" Option: "0"
Um die Variable ups.id
auf den Wert smarty
zu setzen, ist die Eingabe des konfigurierten Passworts nötig. Benutzername und Passwort werden von upsrw
am Prompt abgefragt. Wenn man das verhindern möchte, übergibt man sie als Argumente beim Aufruf:
upsrw -s ups.id=smarty -u username -p passwort smarty
Ein erneuter Aufruf von upsc
oder upsrw
überzeugt uns davon, dass die Variable tatsächlich geändert wurde. Diese Änderung ist dauerhaft.
Zumindest eine weitere Variable ist interessant: battery.date
. Es lassen sich zwar noch einige andere Variablen ändern, aber diese lassen sich über NUT konfigurieren und müssen daher nicht direkt bearbeitet werden. battery.date
hingegen lässt sich nur direkt setzen. Es empfiehlt sich, darin das Datum des letzten Batteriewechsels einzutragen. Die Lebensdauer der Batterien ist leider begrenzt, wozu sicher auch die Temperaturen von durchschnittlich über 30° in der USV beitragen. Oft halten die Bleibatterien nur zwei Jahre durch, bei niedrigeren Temperaturen wäre sicherlich mehr drin.
Das Format der Variablen battery.date
ist frei wählbar, es könnte beispielsweise als Vorgabe 02/21/08
eingetragen sein, oder vielleicht auch gar nichts. Im Beispiel ist die Länge dieser String-Variablen auf 8 Zeichen begrenzt. Sinnvoll erscheint daher eine Formatierung mit vierstelliger Jahreszahl und jeweils zweistelliger Monats- und Tagesangabe, alles direkt hintereinander. Auch hier müssen wieder Name und Passwort angegeben werden:
upsrw -s battery.date=20161108 -u username -p passwort smarty
Die lakonische Antwort des Programms lautet OK
. Wie man danach überprüfen kann, wurde das Datum tatsächlich eingetragen:
battery.date: 20161108
Das Setzen der USV-Variablen mag keine große Sache sein, aber spätestens, wenn man mehr als eine USV besitzt, hilft es dabei, die Übersicht zu behalten.