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!

backup der vm's per script

Hilfe bei Problemen mit Installation & Benutzung des VMware ESX Server 4/VMware vSphere 4.0.

Moderatoren: Dayworker, irix

Member
Beiträge: 174
Registriert: 02.11.2011, 17:14

backup der vm's per script

Beitragvon homermg » 11.01.2012, 14:38

Hey Leute,

ihr habt mir so gut geholfen vielleicht könnt Ihr mir auch dabei helfen.

Mein Vorgänger hat auf dem Host per Cronjob BAckupscript eingebunden. Dieses sichert alle VM's in eine Backup Ordner.
Soweit so gut. Diese funktioniert auch ganz gut. Nun habe ich auf dem Host ein paar VM's installiert. Leider gelingt es mir nicht Backupscript so anzupassen das auch meine neue Vm's gesichert werden.
Habe jetzt auf meine Testsystem alle mal nachgebaut. hier ist mein Script:
#!/bin/bash
declare ScriptDir=/root/scripts
declare BackupItems="SRV2003V1"
VMHostName=`uname -n`
BackupDir=/vmfs/volumes/storage_$VMHostName/VM-Backups
rm -r -f $BackupDir/*

i=1
error=0


for VirtMachine in $BackupItems
do
if [ "`/usr/bin/vmware-cmd -l | grep $VirtMachine.vmx -i -m 1 -c`" == "1" ]; then
VMConfigFile=`/usr/bin/vmware-cmd -l | grep $VirtMachine`
if [ "`/usr/bin/vmware-cmd "$VMConfigFile" getstate`" == "getstate() = on" ]; then
$ScriptDir/conhotbackup "$VMConfigFile" $VirtMachine
Fehler=$?
if [ $Fehler -eq 0 ]; then body[i]=$VirtMachine' Image OK Code '$Fehler
else
body[i]=$VirtMachine' Image !!FEHLER!! Code '$Fehler
error=1
fi
i=$[$i+1]
fi
fi
done

dieser ruft dann diesen auf:

declare VMConfigFile=$1
declare VirtMachine=$2

if [ "`/usr/bin/vmware-cmd "$VMConfigFile" hassnapshot`" == "hassnapshot() = 1" ];
then
exit 4
fi

VMHostName=`uname -n`
BackupDir=/vmfs/volumes/4f073dfe-597b8f96-239b-00142215d92e/VM-Backups

rm -r -f $BackupDir/$VirtMachine
mkdir $BackupDir/$VirtMachine

vmdk=`vmware-cmd "$VMConfigFile" getconfig scsi0:0.fileName|awk '{ print $4 }'`
vmvol=`vmware-cmd "$VMConfigFile" getconfig scsi0:0.fileName|awk '{ print $3 }'`
vmvol=`echo $vmvol |awk '{ print substr($1,2,length($1)-2) }'`
vmdkfull="/vmfs/volumes/$vmvol/$vmdk"
VMConfigPath=`echo $VMConfigFile|awk 'BEGIN {FS="/"};{OFS="/"};{ print($1,$2,$3,$4,$5) }'`
cd $VMConfigPath
cp *.log $BackupDir/$VirtMachine
cp *.nvram $BackupDir/$VirtMachine
cp *.vmsd $BackupDir/$VirtMachine
cp *.vmx $BackupDir/$VirtMachine
cp *.vmxf $BackupDir/$VirtMachine

vmware-cmd "$VMConfigFile" createsnapshot "HotBackupSnap" "Hotbackup" 0 0
if [ $? -ne 0 ]; then exit 1
fi
sleep 5

/usr/sbin/vmkfstools -i $vmdkfull -d 2gbsparse $BackupDir/$VirtMachine/$VirtMachine.vmdk
if [ $? -ne 0 ]; then exit 2
fi

vmware-cmd "$VMConfigFile" removesnapshots
if [ $? -ne 0 ]; then exit 3
else exit 0
fi


wenn ich die ausführe passiert leider nichts, es wird noch nicht mal diese VM-Backups Ordner erstellt. Auch bekomme ich keine Fehlermeldung.

Kann mir da jemand helfen?

VG

Member
Beiträge: 174
Registriert: 02.11.2011, 17:14

Beitragvon homermg » 12.01.2012, 09:12

keiner hier der sich mit sowas auskennt?

Benutzeravatar
Moderator
Beiträge: 3476
Registriert: 23.02.2005, 09:14
Wohnort: Burgberg im Allgäu
Kontaktdaten:

Beitragvon Tschoergez » 12.01.2012, 15:41

Hi!
Wenn ich's recht überfliege, werden in Zeile 3 die VMs angegeben, die gesichert werden sollen.

Das Backup-Verzeichnis muss es schon geben, das wird nicht angelegt... Gibts bei Dir den Datastore /vmfs/volumes/4f073dfe-597b8f96-239b-00142215d92e?
Viele Grüße,
Jörg

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

Beitragvon irix » 12.01.2012, 15:44

Die VMs muessen auch den richtigen Namen haben. Bei solchen wo im vCenter/ESXi nur der Label geaendert wurde rennt das Script ins leere weil die Dateien anders heissen.

Gruss
Joerg

Member
Beiträge: 174
Registriert: 02.11.2011, 17:14

Beitragvon homermg » 19.03.2012, 14:25

Hey Leute,

danke für die Tips, habe nun meinen Fehler gefunden.
Es sind ein paar Maschiene mit SCSI HD eingeirchtet und ein paar mit IDE HD.
Im Script habe ich aber nur SCSI.
Kann mir vielleicht jemand hellfen das so anzupassen das SCIS und IDE vom Script abgearbeitet wird?

Vielen Dank

Benutzeravatar
Moderator
Beiträge: 3476
Registriert: 23.02.2005, 09:14
Wohnort: Burgberg im Allgäu
Kontaktdaten:

Beitragvon Tschoergez » 19.03.2012, 16:23

Dazu musst do wohl die beiden Zeilen anpassen:

Code: Alles auswählen

vmdk=`vmware-cmd "$VMConfigFile" getconfig scsi0:0.fileName|awk '{ print $4 }'`
vmvol=`vmware-cmd "$VMConfigFile" getconfig scsi0:0.fileName|awk '{ print $3 }'`

und nach ide-Geräten suchen. Nur aufpassen, dass Du keine CD-Rom-ISO-Dateien mitsicherst :grin:

Viele Grüße,
Jörg

Member
Beiträge: 174
Registriert: 02.11.2011, 17:14

Beitragvon homermg » 19.03.2012, 16:27

Hi Jörg,
danke dir nur ich wollte das alles in einem Script habe wenn ich die jetzt auf ide ändere macht diese natürlich nur noch ide. Ich würde geren das mein Script checkt ob ide oder scsi und macht halt das was da ist. Da weiß ich leider nicht wie ich das machen soll


Zurück zu „vSphere 4 / ESX 4“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 14 Gäste