Derzeit wird das Doshutdown- Ereignis ausgelöst, wenn eine der beiden USV stirbt , und das Standardskript wird über apccontrol ausgeführt . Das Doshutdown- Skript ignoriert die zweite USV, da sie nicht mit einem Ereignis verbunden sind, und fährt normal mit dem Herunterfahren fort.
Damit die Doshutdown- Ereignisse etwas miteinander verbunden sind, benötigen die beiden Instanzen von apcupsd eine speziell angepasste Konfigurationsdatei. Der Unterschied liegt in dem Verzeichnis, aus dem die Ereignisskripte ausgeführt werden müssen.
Haupteigenschaften von First Ups, in /etc/apcupsd/apcupsd.ups0.conf
SCRIPTDIR /etc/apcupsd/ups0
UPSNAME ups0
DEVICE /dev/ups0
PWRFAILDIR /etc/apcupsd/ups0
NOLOGINDIR /etc/apcupsd/ups0
NISPORT 3551
EVENTSFILE /var/log/apcupsd.0.events
Und für die ups1, in /etc/apcupsd/apcupsd.ups1.conf
SCRIPTDIR /etc/apcupsd/ups1
UPSNAME ups1
DEVICE /dev/ups1
PWRFAILDIR /etc/apcupsd/ups1
NOLOGINDIR /etc/apcupsd/ups1
NISPORT 3552
EVENTSFILE /var/log/apcupsd.1.events
Jedes Skriptverzeichnis sollte eine Kopie der Standardskripte erhalten.
Wir möchten das Doshutdown- Skript anpassen, das den Computer nicht direkt herunterfährt, sondern prüfen muss, ob die andere USV noch eingeschaltet ist oder sich im Shutdown-Modus befindet.
Oben im Doshutdown- Skript könnten wir so etwas hinzufügen
für ups0
if [ ! -f /tmp/ups1.is.down ]
then
touch /tmp/ups0.is.down
exit 99
fi
für ups1
if [ ! -f /tmp/ups0.is.down ]
then
touch /tmp/ups1.is.down
exit 99
fi
Der Status 99 hat eine spezielle Bedeutung, die apccontrol anweist , die laufende Aktion zu stoppen. Die fünf Zeilen prüfen, ob die andere UPS-Down-Datei erstellt wurde. Wenn nein , wird die Down-Datei für die Downs erstellt und beendet. Wenn ja , was bedeutet, dass die andere USV ausgefallen ist, fällt auch diese aus, daher sollte das Skript fortgesetzt und die Maschine heruntergefahren werden.
Die Dateien /tmp/usp[01].is.down
zeigen an, ob das Ups [01] derzeit nicht funktioniert.
Wichtig: Das Startskript init.d von apcupsd sollte diese Dateien entfernen, wenn sie in einer früheren Sitzung erstellt wurden:
rm -f /tmp/usp[01].is.down
Schließlich sollten die oben erstellten Verzeichnisse / etc / apcupsd / ups [01] Zugriff auf den Benutzer apcupsd (oder auf den relevanten Benutzer, der die Instanzen ausführt ) erhalten.
chown -R apcupsd /etc/apcupsd/ups[01]
Bitte schauen Sie sich die ausführliche Dokumentation an .
Bearbeiten behoben die /tmp/ups[01].is.down
Namen, die .is
fehlten.