PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : remote Shell skript ausführen



Kees_23
12-05-2010, 09:03
Hallo Gemeinde,

ich habe ein kleines Problem:
Wir setzen VMWare ESX 4 bei uns ein und darauf ist ein virtuelles Linux installiert. Auf dem Linux läuft das APC USV Networkshutdown Tool, das mir ein Shellskript startet, bevor die Maschine heruntergefahren wird.
Das Skript setzt eine eMail ab, danach wartet es 120 Sekunden und dann soll es ein Skript das Lokal auf dem ESX Server läuft ausführen.

Anbei Codesnippets


mail -s "USV-Network Shutdown" $emailaddr < emailcontent
sleep 120
ssh $esxuser@$esx '/usr/local/esx_shutdown.sh; echo "USV-Shutdown initiiert..." > /root/shutdown.log; echo "Zeitstempel: $(date)" >> /root/shutdown.log'


Das Skript auf dem ESX liest die laufenden VMs aus, und prüft ob die Maschinen laufen, und beendet diese, und prüft erneut bis keine Maschinen mehr laufen und macht dann einen "shutdown -h now".

Jetzt kommt mein Dilemma: Wie kann ich das Skript so ausführen lassen, dass der ESX auch ohne die Linux-Büchse weiter läuft, bis er wirklich durch alle Schleifen durch ist?

Danke für eure Tipps

John W
12-05-2010, 16:43
ssh $esxuser@$esx '/usr/local/esx_shutdown.sh; echo "USV-Shutdown initiiert..." > /root/shutdown.log; echo "Zeitstempel: $(date)" >> /root/shutdown.log'&
ssh wird so im Hintergrund ausgeführt, es wird also nicht gewartet.
Danach musst du nur prüfen, ob alle VMs abgeschaltet sind:

while ping -c3 $esx 2&>/dev/null
do sleep 1
doneDie VM wird 3-mal angepingt, wenn sie nicht pongt, fährt das Skript fort.

Kees_23
14-05-2010, 07:32
Hallo John_W,
Ich glaube wir reden aneinander vorbei. Ich kann natürlich von das SSH in den Hintergrund verbannen, ist aber leider nicht das was ich meine. Das Linux läuft auf dem ESX und wenn das Linux den "vmware-cmd stop" befehl bekommt, schließt sich das Skript und bricht somit auch den SSH ab. Oder versteh ich jetzt was falsch?

John W
14-05-2010, 14:03
Das Skript wird solange pausiert, bis der Ping fehlschlägt, danach erst wird fortgefahren.
Ich gehe mal davon aus, dass dein shutdown-Skript das Linux wirklich herunterfährt, also kann die Maschine nicht mehr angepingt werden, wodurch dann wiederum das Skript fortfährt.

Kees_23
26-05-2010, 09:34
Entschuldigung für die späte Antwort.
Ich habe das Problem jetzt anderweitig gelöst.
Jetzt gehe ich her und filtere die VM, die das Script anstößt aus, und lasse den ESX trotz laufender Maschine herunterfahren und nutze den Standard Shutdown des ESX.

Danke Trotzdem