Die Foren-SW läuft ohne erkennbare Probleme. Sollte doch etwas nicht funktionieren, bitte gerne hier jederzeit melden und wir kümmern uns zeitnah darum. Danke!

Automatischer ShutDown ESX 5i Host 5.0

Moderatoren: Dayworker, irix

Member
Beiträge: 14
Registriert: 01.08.2012, 23:01

Automatischer ShutDown ESX 5i Host 5.0

Beitragvon wilfriedw » 08.01.2013, 23:24

Ich möchte über einen CronJob erreichen, das mein ESX-Host täglich um 22:00 herunterfährt. Hierzu habe ich folgenden Link gefunden:http://www.sysbus.eu/?p=2669

Hierzu folgendes:
Die Datei /var/spool/cron/crontabs/root ist schreibgeschützt.
Die Datei bzw. der Pfad /etc/rc.local.d/local.sh gibt es bei mir nicht
Bei mir gibt es 2 Dateien unter /etc 1x rc.local und 1x local.sh
In beiden Dateien habe ich folgende Anweisung eingefügt: (nur mit anderer Uhrzeit)
echo “0 23 * * * /bin/halt” >> /var/spool/cron/crontabs/root

Bis jetzt ALLES ohne Erfolg. Die Einträge habe ich mit dem vi vorgenommen und auch abgespeichert. Habe noch festgestellt, das nach einem gewollten Neustart des Servers der Eintrag in der local.sh weg war.
?? Was mache ich falsch. - Danke für jede Hilfe/Unterstützung
PS: ?? Gibt es auch eine Möglichkeit die VM-Gäste automatisch herunter zufahren.
!! Habe keinerlei Erfahrung mit Linux bzw. Skripting.

Member
Beiträge: 210
Registriert: 18.02.2011, 11:30

Beitragvon Klaus_Urban » 09.01.2013, 08:07

Hallo wilfried,

hier meine /etc/rc.local

Code: Alles auswählen

=================================

#!/bin/sh

export PATH=/sbin:/bin

log() {
   echo "${1}"
   /bin/busybox logger init "${1}"
}

# execute all service retgistered in ${rcdir} ($1 or /etc/rc.local.d)
if [ -d "${1:-/etc/rc.local.d}" ] ; then
   for filename in $(find "${1:-/etc/rc.local.d}" | /bin/busybox sort) ; do
      if [ -f "${filename}" ] && [ -x "${filename}" ]; then
         log "running ${filename}"
         "${filename}"
      fi
   done
fi


# Hier wird die /var/spool/cron/crontabs/root um die Sicherung erweitert.
# Die Zeit wird in UTC eingegeben. Also eine Stunde früher.
# =========================================================

kill $(cat /var/run/crond.pid)

/bin/busybox echo "00 22 * * 1-6 /vmfs/volumes/datastore1/script/Sicherung.sh"  >> /var/spool/cron/crontabs/root
# 22:00 Uhr UTC ist 23:00 Uhr lokale Winterzeit und 00:00 Uhr lokale Sommerzeit

/bin/busybox crond



=================================================================


Klaus



[Moderator]
{Code}{/Code}

King of the Hill
Beiträge: 13066
Registriert: 02.08.2008, 15:06
Wohnort: Hannover/Wuerzburg
Kontaktdaten:

Beitragvon irix » 09.01.2013, 08:08

Die Anleitung ist doch fuer 5.1 und du hast einen 5.0? Des Weiteren war in der Anfangszeit der VM Shutdown im kostenlosen vSphere Hypervisor defekt und wurde erst mit einem Patch oder dem u1 wieder funktionsfaehig gemacht.

Gruss
Joerg

Member
Beiträge: 210
Registriert: 18.02.2011, 11:30

Beitragvon Klaus_Urban » 09.01.2013, 08:23

Hallo irix,

> Die Anleitung ist doch fuer 5.1 und du hast einen 5.0?

das script funktioniert auch auf einem 5.0.

> Des Weiteren war in der Anfangszeit der VM Shutdown im kostenlosen
> vSphere Hypervisor defekt und wurde erst mit einem Patch oder dem u1
>wieder funktionsfaehig gemacht.

Ok, u1 ist natürlich installiert.

Klaus

Member
Beiträge: 14
Registriert: 01.08.2012, 23:01

Hat funktioniert

Beitragvon wilfriedw » 09.01.2013, 10:59

Vielen Dank,
hat nach dem Update funktioniert.
Gibt es nun auch eine Möglichkeit, die entsprechenden Gäste (VMs) automatisch herunter zu fahren. Oder geht das nur mit Windows Tools wie pshutdown ?

King of the Hill
Beiträge: 13066
Registriert: 02.08.2008, 15:06
Wohnort: Hannover/Wuerzburg
Kontaktdaten:

Beitragvon irix » 09.01.2013, 11:11

Host->Configuration->VM Startup/Shutdown aktivieren und konfigurieren.

Gruss
Joerg

Member
Beiträge: 14
Registriert: 01.08.2012, 23:01

Host->Configuration->VM Startup/Shutdown aktivieren un

Beitragvon wilfriedw » 09.01.2013, 11:26

Hallo Jörg,

also unter Host -> Konfiguration gibt es den Punkt "Software". Darunter:
VM starten/herunterfahren. Hier kann ich aber nur die Standardverzögerung beim Aus bzw. Einschalten einrichten. Oder bin ich hier an der falschen Seite ??

- Danke

Member
Beiträge: 210
Registriert: 18.02.2011, 11:30

Beitragvon Klaus_Urban » 09.01.2013, 11:31

Hallo Wilfried,
hier das Script zum Herunterfahren einer VM.

Code: Alles auswählen

#!/bin/sh

VM_NAME="APServer"
/bin/vim-cmd vmsvc/getallvms | sed 's/[[:blank:]]\{3,\}/   /g' | awk -F'   ' '{print "\""$1"\";\""$2"\";\""$3"\""}' |  sed 's/\] /\]\";\"/g' | sed '1,1d' > /tmp/vms_list
VM_ID=`grep -E "\"${VM_NAME}\"" /tmp/vms_list | awk -F ";" '{print $1}' | sed 's/"//g'`
/bin/vim-cmd vmsvc/power.shutdown ${VM_ID} > /dev/null 2>&1


Klaus



[Moderator]
{Code}{/Code}

Member
Beiträge: 210
Registriert: 18.02.2011, 11:30

Beitragvon Klaus_Urban » 09.01.2013, 12:03

Nachtrag,
> also unter Host -> Konfiguration gibt es den Punkt "Software". Darunter:
> VM starten/herunterfahren. Hier kann ich aber nur die Standardverzögerung beim Aus
> bzw. Einschalten einrichten. Oder bin ich hier an der falschen Seite ??

Nein,
Automatisches Starten und Herunterfahren zulassen,
Aktion beim Herunterfahren: Herunterfahren des Gastes

Klaus

King of the Hill
Beiträge: 13066
Registriert: 02.08.2008, 15:06
Wohnort: Hannover/Wuerzburg
Kontaktdaten:

Re: Host->Configuration->VM Startup/Shutdown aktiviere

Beitragvon irix » 09.01.2013, 12:34

wilfriedw hat geschrieben:Hallo Jörg,

also unter Host -> Konfiguration gibt es den Punkt "Software". Darunter:
VM starten/herunterfahren. Hier kann ich aber nur die Standardverzögerung beim Aus bzw. Einschalten einrichten. Oder bin ich hier an der falschen Seite ??

- Danke


Nein, du bist nicht an der falschen Stelle. Im deutschen und auf einem Standalone ist die Menufuehrung eine andere. Neben der Startverzoegerung kannst du doch unten auch die Reihenfolgen einstellen bzw. ueberhaupt definieren das die VM starten sollen.

Gruss
Joerg

Member
Beiträge: 14
Registriert: 01.08.2012, 23:01

Host->Configuration->VM Startup/Shutdown aktivieren

Beitragvon wilfriedw » 09.01.2013, 13:40

!!! Vielen Dank an ALLE für die super Unterstützung.
Hab den Eintrag gefunden.
Das mit dem Skript werde ich noch testen. Ist das ein Cronjob bzw. muss der Eintrag
in die rc. local ??

Member
Beiträge: 210
Registriert: 18.02.2011, 11:30

Beitragvon Klaus_Urban » 09.01.2013, 13:54

Hallo Wilfried,

>Das mit dem Skript werde ich noch testen.
> Ist das ein Cronjob bzw. muss der Eintrag in die rc. local ??

das ist erst mal ein script zum herunterfahren einer VM.
Ob du ihn als cronjob nutzt, ist deine Sache.
Ich nutzt das Script in Verbindung zur Datensicherung.
Also VM herunterfahren, VM sichern, VM starten.
Die Datensicherung ist ein Cronjob.

Klaus

Member
Beiträge: 82
Registriert: 12.09.2012, 20:56

Beitragvon albiderbaer » 09.01.2013, 17:46

Hallo an die Cracks,

nur mal so eine Frage zwischendurch: Kann man diese Script auch im Zusammenhang mit einer APC Managementkarte verwenden, so dass bei Stromausfall die VM heruntergefahren werden?

Mit dem vma geht es ja irgendwie nicht.

:oops:

Danke im voraus.

Thomas

Experte
Beiträge: 1006
Registriert: 30.10.2004, 12:41

Beitragvon mbreidenbach » 09.01.2013, 18:08

APC hat inzwischen ein Zusatzskript welches von PCNS aus aufgerufen die VMs runterfährt.

http://www2.schneider-electric.com/reso ... onment.pdf

Member
Beiträge: 82
Registriert: 12.09.2012, 20:56

Beitragvon albiderbaer » 10.01.2013, 17:33

@mbreidenbach

leider funktioniert das Script auf dem vma bei mir nicht.
Wenn ich das Script von Hand starte mittels sudo ./bin/shutdownvms.sh
dann erscheint folgende Fehlermeldung:

./bin/shutdownvms.sh: line 19: unexpected EOF while looking for matching `"´
./bin/shutdownvms.sh: line 29: syntax error: unexpected end of file

In der shutdownvms.sh habe ich als Host die IP-Adresse des ESXi und vi-admin als username mit dessen Passwort eingetragen

Schade eigentlich. Bin über jeden Rat dankbar.

Gruß Thomas

King of the Hill
Beiträge: 13659
Registriert: 01.10.2008, 12:54
Wohnort: laut USV-Log am Ende der Welt...

Beitragvon Dayworker » 10.01.2013, 18:22

Mit welchem Programm hast du das Script eingetragen?
EOL-Fehler sind ein bekanntes Problem, wenn man eine Datei unter Windows oder Linux bearbeitet und dabei nicht das jeweilige Zeilenendekennzeichen beachtet. Während unter Linux ein "LF" ausreicht, will Windows ein "CR+LF" am Zeilenende sehen. Viele Editoren unter Windows wie Notepad++ können beides verarbeiten und bieten auch eine Konvertierung nach Windows, Linux oder MacOS an. Unter Linux und MacOS kann man feherhafte Zeilenendezeichen auch problemlos auf der Ba$h oder Terminal bearbeiten.

Member
Beiträge: 82
Registriert: 12.09.2012, 20:56

Beitragvon albiderbaer » 10.01.2013, 21:04

Ich habe die Datei mit dem Winscp-eigenen Editor bearbeitet.

Kann ich Datei diesbezüglich nochmals prüfen und korrigieren und wenn ja wie?

Member
Beiträge: 82
Registriert: 12.09.2012, 20:56

Beitragvon albiderbaer » 10.01.2013, 21:07

Mit vi kenne ich mich nicht so aus und ein Editor unter Windows wäre mir am liebsten.

Irgendwo habe ich allerdings gelesen, dass PCNS nicht richtig funktioniert und das würde ja leider passen...

Member
Beiträge: 82
Registriert: 12.09.2012, 20:56

Beitragvon albiderbaer » 13.01.2013, 11:43

Also ich habe es jetzt nochmals mit notepad++ probiert mit dem gleichen Ergebnis: gleich Fehlermeldung und nichts passiert auf dem ESXi.
Das Skript scheint nicht zu funtionieren.

Member
Beiträge: 210
Registriert: 18.02.2011, 11:30

Beitragvon Klaus_Urban » 13.01.2013, 11:57

Hallo albiderbaer
teste mal mein Script.
Da werden zuerst 3 VM's heruntergefahren und nach 2 Minuten des ESXi ausgeschaltet.


Code: Alles auswählen

#!/bin/sh

VM_NAME="APServer"
/bin/vim-cmd vmsvc/getallvms | sed 's/[[:blank:]]\{3,\}/   /g' | awk -F'   ' '{print "\""$1"\";\""$2"\";\""$3"\""}' |  sed 's/\] /\]\";\"/g' | sed '1,1d' > /tmp/vms_list
VM_ID=`grep -E "\"${VM_NAME}\"" /tmp/vms_list | awk -F ";" '{print $1}' | sed 's/"//g'`
/bin/vim-cmd vmsvc/power.shutdown ${VM_ID} > /dev/null 2>&1

VM_NAME="XP-Pro"
/bin/vim-cmd vmsvc/getallvms | sed 's/[[:blank:]]\{3,\}/   /g' | awk -F'   ' '{print "\""$1"\";\""$2"\";\""$3"\""}' |  sed 's/\] /\]\";\"/g' | sed '1,1d' > /tmp/vms_list
VM_ID=`grep -E "\"${VM_NAME}\"" /tmp/vms_list | awk -F ";" '{print $1}' | sed 's/"//g'`
/bin/vim-cmd vmsvc/power.shutdown ${VM_ID} > /dev/null 2>&1

VM_NAME="NFS-Server"
/bin/vim-cmd vmsvc/getallvms | sed 's/[[:blank:]]\{3,\}/   /g' | awk -F'   ' '{print "\""$1"\";\""$2"\";\""$3"\""}' |  sed 's/\] /\]\";\"/g' | sed '1,1d' > /tmp/vms_list
VM_ID=`grep -E "\"${VM_NAME}\"" /tmp/vms_list | awk -F ";" '{print $1}' | sed 's/"//g'`
/bin/vim-cmd vmsvc/power.shutdown ${VM_ID} > /dev/null 2>&1

sleep 120
/bin/halt


Klaus



[Moderator]
{Code}{/Code}

Guru
Beiträge: 2771
Registriert: 23.02.2012, 12:26

Beitragvon ~thc » 13.01.2013, 13:37

@Klaus

Die zwei Zeilen

Code: Alles auswählen

/bin/vim-cmd vmsvc/getallvms | sed 's/[[:blank:]]\{3,\}/ /g' | awk -F' ' '{print "\""$1"\";\""$2"\";\""$3"\""}' | sed 's/\] /\]\";\"/g' | sed '1,1d' > /tmp/vms_list
VM_ID=`grep -E "\"${VM_NAME}\"" /tmp/vms_list | awk -F ";" '{print $1}' | sed 's/"//g'`


lassen sich ersetzen durch

Code: Alles auswählen

VM_ID=`/bin/vim-cmd vmsvc/getallvms | grep ${VM_NAME} | awk '{print $1}'`

Member
Beiträge: 82
Registriert: 12.09.2012, 20:56

Beitragvon albiderbaer » 14.01.2013, 16:45

@Klaus
@~thc

vielen Dank für Eure Hilfe
:grin:

Die Frage ist nur wo dieses Skript abgearbeitet wird. Auf dem vMA scheint es die Dateien /bin/vim-cmd bzw. /bin/halt nicht zu geben. Output: No such File or Directory
Also gehe ich davon aus, dass das Script auf dem Esxi gestartet werden muss??
Bloß dann ist die Frage, wie ich das mit dem mit der APC-Managementkarte verknüpfe.

Gruss Thomas

Guru
Beiträge: 2771
Registriert: 23.02.2012, 12:26

Beitragvon ~thc » 14.01.2013, 20:50

@albi

Meine Antwort bezog sich nur auf das Script von Klaus, welches sich wiederum eher auf die ursprüngliche Fragestellung des Threads bezieht und auf einem ESXi läuft.

Wenn du auf der vMA keine Unix-kompatiblen Dateien erzeugen möchtest, kannst du die unter Windows erzeugte Datei mit einem FTP-Programm wie z.B. Filezilla im "ASCII"-Modus auf die vMA hochladen. Dabei wird das (DOS/Unix-) Format angepasst.

Member
Beiträge: 210
Registriert: 18.02.2011, 11:30

Beitragvon Klaus_Urban » 15.01.2013, 09:56

Hallo albiderbaer
>Die Frage ist nur wo dieses Skript abgearbeitet wird.
>Also gehe ich davon aus, dass das Script auf dem Esxi gestartet werden muss??

Richtig

>Bloß dann ist die Frage, wie ich das mit dem mit der APC-Managementkarte verknüpfe.

ssh root@ESXi-IP '/bin/ash -s' < /vmfs/volumes/datastore1/script/Ausschalten.sh
Das Problem wird die Passwortübergabe sein.

Per Windows VM funktioniert es per Plink.exe
start plink.exe -ssh -pw ESXI-Passwort -2 root@ESXi-IP "/vmfs/volumes/datastore1/script/Ausschalten.sh"

Klaus

King of the Hill
Beiträge: 13066
Registriert: 02.08.2008, 15:06
Wohnort: Hannover/Wuerzburg
Kontaktdaten:

Beitragvon irix » 15.01.2013, 10:13

Es gibt mittlerweile ein "esxcli" Plugin welches das Programm um die Faehigkeit erweitert Remote Commands auszufuehren ohne das man den SSH aufmachen muss. Wenn ich es richtig gelesen habe tunnelt man die API und es wird explizit ghettoVCB2 erwaehnt.

Ich vermute das du so auch dein Shutdown Script antriggern kannst von einer VM oder externem System welche deinen APC Agent und vSphere CLI installiert hat.

http://www.v-front.de/2013/01/release-e ... trary.html

Gruss
Joerg


Zurück zu „vSphere 5 / ESXi 5 und 5.1“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast