SuSE Linux: Versionen ab 7.2
Ab der Version 0.44.3 des smartups Paketes (enthalten in der SuSE Linux Version 7.2) ist es möglich einen sog. forced shutdown einzuleiten, der zusätzlich eventuell vorhandene Slave Systeme vom Stromausfall informiert und gegebenenfalls herunterfährt. In Kombination mit einem Timer, der ab dem Zeitpunkt des Stromausfalls gestartet wird, kann man nun das gewünschte Ziel erreichen.
Im folgenden wird nur auf die Konfiguration des Master Rechners (der mit der direkt angeschlossenen USV) eingegangen, Slave Systeme bleiben bei dieser Konfiguration unberücksichtigt.
# NOTIFYCMD /usr/local/ups/bin/notifyme # NOTIFYFLAG ONLINE SYSLOG # NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
und ändern diese wie folgt ab:
NOTIFYCMD /usr/sbin/upssched NOTIFYFLAG ONLINE SYSLOG+EXEC NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
Dies sorgt dafür, daß im Falle eines Stromausfalls (ONBATT) und der Wiederherstellung der Stromversorgung (ONLINE) das Kommando /usr/sbin/upssched ausgeführt wird.
Das Kommando /usr/sbin/upssched startet einen Timer, der je nach eingestellter Zeit ein angegebenes Kommando (oder Script) aufruft, sowie den Timer bei Bedarf wieder abbricht. Diese Informationen stehen in der Konfigurationsdatei /etc/ups/upssched.conf, die Sie mit einem Editor Ihrer Wahl anlegen können. Ein Beispiel für diese Datei, das Sie per cut and paste direkt übernehmen können, finden Sie hier:
# # /etc/ups/upssched.conf # Konfigurationsdatei für /usr/sbin/upssched # CMDSCRIPT /usr/local/sbin/go-down PIPEFN /var/run/upssched.pipe AT ONBATT * START-TIMER onbattwarn 60 AT ONLINE * CANCEL-TIMER onbattwarn
Mit dieser Konfiguration wird beim Start von /usr/sbin/upssched im Falle eines Stromausfalls (ONBATT)ein 60 Sekunden Timer gestartet, der nach Ablauf das in der Zeile CMDSCRIPT angegebene Script (in diesem Beispiel /usr/local/sbin/go-down) startet. Falls vor Ablauf des Timers die Stromversorgung wiederhergestellt wurde (ONLINE), so wird dieser abgebrochen.
Legen Sie bitte mit einem Editor die Datei /usr/local/sbin/go-down mit folgendem Inhalt an:
#!/bin/bash # # /usr/local/sbin/go-down # Script zum Herunterfahren des Rechners # upsmon -c fsd
und ändern Sie anschließend mit der Befehlszeile:
chmod 700 /usr/local/sbin/go-down
die Zugriffsrechte für diese Datei.
Starten Sie bitte mit der Befehlszeile:
rcups restart
den UPS Dienst neu, und ziehen das Stromversorgungskabel der USV. Warten Sie bis auf der Konsole die Meldung:
Broadcast Message from root@D222 (somewhere) at 15:18 ... UPS localhost on battery
erscheint, und stecken Sie danach das Kabel wieder ein. Geben Sie bitte nun das Kommando:
tail -n20 /var/log/messages
ein, um zu überprüfen, ob der Timer korrekt gestartet und wieder abgebrochen wurde. In diesem Fall sollte die Ausgabe so aussehen:
Jul 10 15:18:34 D222 upsmon[3437]: UPS localhost on battery Jul 10 15:18:34 D222 upssched[3445]: Timer daemon running Jul 10 15:18:34 D222 upssched[3445]: New timer: onbattwarn (60 seconds) Jul 10 15:19:05 D222 upsmon[3437]: UPS localhost on line power Jul 10 15:19:05 D222 upssched[3445]: Cancelling timer: onbattwarn Jul 10 15:19:05 D222 upssched[3445]: Timer queue empty, exiting
War der Test erfolgreich, ziehen Sie bitte nochmals das Kabel für die USV Stromversorgung. Der Rechner fährt nun automatisch nach einer Minute herunter.
Möchten Sie darüberhinaus die USV nach diesem Vorgang abschalten, muß während des Shutdowns ein zusätzliches Kommando an die USV abgesetzt werden. Hierfür bietet sich eine Modifikation des /etc/init.d/halt.local Scripts an, welche nachfolgend aufgeführt ist.
#!/bin/bash # # /usr/local/sbin/ups-down # Script zum Abschalten der USV im Falle eines Stromausfalls. # if (test -f /etc/killpower) then echo "Killing the power, bye!" /usr/lib/ups/driver/apcsmart -k /dev/ttyS0 fi
und ändern Sie anschließend mit der Befehlszeile:
chmod 700 /usr/local/sbin/ups-down
die Zugriffsrechte für diese Datei.
Sorgen Sie abschließend dafür, daß dieses Script in der Datei /etc/init.d/halt.local ausgeführt wird. Die Befehlszeile:
echo "/usr/local/sbin/ups-down" >>/etc/init.d/halt.local
erledigt dies für Sie.
Das Script sucht beim Herunterfahren des Rechners die Datei /etc/killpower. Diese wird von der USV Software immer dann erstellt, wenn Sie dem Rechner das Siganl zum Shutdown gegeben hat. Falls diese Datei existiert, wird das Kommando /usr/lib/ups/driver/apcsmart -k /dev/ttyS0 abgesetzt, welches die USV dazu veranlasst, sich nach einer bestimmten Zeitspanne selbst abzuschalten. Diese ist innerhalb der USV fest definiert.
Wenn die Stromversorgung wiederhergestellt ist, schaltet sich die USV automatisch wieder ein, und startet somit den Rechner. Bei ATX Geräten müssen Sie eventuell noch eine Einstellug im BIOS Ihres Rechners vornehmen, um diese Funktionalität zu erhalten.