Shutdown Linux- und Windowsserver an USV

Sowohl Linux- als auch Windowsserver sind an einer gemeinsamen USV angeschlossen. Die USV hängt mittels USB an einem Windowsserver.
Nun sollen alle Server bei Stromausfall geordnet und automatisch herunterfahren:
Voraussetzungen: Am Winserver, an dem die USV hängt gibts einen Putty und PuttyGen, sowie auf allen Winservern einen Benutzer mit dem Recht Rechner runterzufahren (Serveroperatoren)

Vorgehensweise:

1. Mit PuttyGen ein Schlüsselpaar erzeugen. Dabei werden sie nach einer Passphrase gefragt. Bitte leer lassen, denn wir wollen uns ja ohne Eingabe einer Passphrase automatisch verbinden.
2. Den privaten Schlüssel in Datei speichern und in einem Verzeichnis (zb.: USV) ablegen.
3. ssh Sitzung auf Linuxserver als Benutzer mit dem Recht den Rechner runterzufahren.
4. Im Homeverzeichniss des Users nach .ssh wechseln und dort die Datei authorized_keys erstellen, sofern sie noch nicht existiert.

cd ./ssh
joe authorized_keys

Mittels Copy&Paste den öffentlichen Schlüssel aus PuttyGen in die authorized_keys einfügen.
Dabei muss der gesamte Schlüssel in einer Zeile stehen und nach dem letzten Eintrag ist unbedingt ein Zeilenumbruch einzufügen. Datei abspeichern.
5. Test mit Putty ob automatisierter login klappt:
5.1. In Putty neue Verbindung zum Linux erstellen mit Angabe des richtigen Benutzers:

root@mylinux..net.oder.IP

5.2. Im Reiter ssh => Auth die Schlüsseldatei aus dem Verzeichniss USV angeben.
5.3. Im Reiter ssh => Remote Kommando noch „shutdown -h 5“ angeben und Verbindung als „wieesbeliebt“ speichern.
Wird nun diese Verbindung in Putty aufgerufen, wird die Verbindung automatisch hergestellt und das Shutdown Kommando am Linux ausgeführt.
In einer 2ten Shell mit „shutdown -c“ das Runterfahren unterbrechen, denn wir wollen ja im Moment nur testen ob alles funktioniert.

Nun zum Windowsserver:

1. Auf allen Winservern muss zb.. der User „usvkiller“ als Serveroperator angelegt sein.
2. Wir erstellen eine Batchdatei „runterfahren.cmd“:

@echo off
start shutdown /s /m "servername" /t 300
start shutdown /s /m "servername2" /t 300
//mit diesen Befehlen werden die Server servername und servername2 runtergefahren
start putty -load wieesbeliebt
//damit wird Putty mit der gespeicherten Verbindung wieesbeliebt gestartet und am Linuxserver das ebenfalls in Putty gespeicherte Shutdownkommando übergeben
shutdown /s /t 300
//damit wird der lokale Server runtergefahren

3. Da unser lokaler Winserver direkt an der USV hängt, verfügt er, wie ein Notebook auch, in den Energieoptionen über eine Batterie. Also geben wir in den Energieoptionen an, dass bei einem Batteriestand von zb.: 40% eine bestimmte Datei aufgerufen wird, eben unsere „runterfahren.cmd“. Ebenso geben wir an, dass diese Datei im Kontext des Benutzers „usvkiller“ ausgeführt wird.

Ist alles getestet und ok, kann die Zeitspanne zum Runterfahren noch verkürzt werden.
Unter Windows ist die Zeitspanne in Sekunden anzugeben.