Zum Inhalt wechseln


Foto

Script zur Sicherung von Virtuellen Maschinen


  • Bitte melde dich an um zu Antworten
28 Antworten in diesem Thema

#1 André_Neustadt

André_Neustadt

    Senior Member

  • 313 Beiträge

 

Geschrieben 20. März 2010 - 15:24

Hallo,
ich habe mir ein kleines Script geschrieben das meine Virtuellen Maschinen Sichern soll (VMWare Server). Es läuft alles wunderbar bis zu dem Punkt, wo er die Dateien wegkopieren soll! Das Verzeichniss wo eine Virtuelle Maschine drin liegt sieht wie folgt aus

E:\Virtuelle Maschinen\Produktivumgebung\Linuxserver

Er gibt mir immer aus das er den Pfad nicht finden kann es gibt ihn aber!! Wenn ich das eine Testdatei in E:\test.txt lege klappt es lege ich die Datei in E:\Virtuelle Maschinen findet er die Dateien nicht!

Hier mein Script!

del /Q /F C:\Dokumente und Einstellungen\Administrator\Desktop\Batch\Backup\PA-Linux\log.txt
del /Q /F I:\Server-Images\PA-Linux >> log.txt

@echo Sicherungs-Job vom: %date% >> log.txt
@echo. >> log.txt
@echo Startzeit des Sicherungs-Jobs: %time:~0,8% Uhr >> log.txt
@echo. >> log.txt
@echo. >> log.txt

"D:\VMware Server\vmrun.exe" -h https://127.0.0.1:8333/sdk -u VM-Backup -p password -T server suspend "[Produktivumgebung] PA-Linux/PA-Linux.vmx" >> log.txt

copy E:\Virtuelle Maschinen\Produktivumgebung\PA-Linux\*.* I:\Server-Images\PA-Linux\ >> log.txt

"D:\VMware Server\vmrun.exe" -h https://127.0.0.1:8333/sdk -u VM-Backup -p password -T server start "[Produktivumgebung] PA-Linux/PA-Linux.vmx" >> log.txt

@echo. >> log.txt
@echo. >> log.txt
@echo Sicherungs-Job vom: %date% >> log.txt
@echo. >> log.txt
@echo Endzeit des Sicherungs-Jobs: %time:~0,8% Uhr >> log.txt
@echo Die Sicherung hat %timer% min. gedauert! >> log.txt

"C:\Dokumente und Einstellungen\Administrator\Desktop\Batch\Backup\PA-Linux" mailsend.exe -d test.local -smtp 192.168.0.4 -t test@test.de -f backup@test.local +cc +bc -sub "Backup erfolgreich durchgelaufen am %date% - PA-Linux" -M "Das Backup to Disk ist erfolgreich abgeschlossen fuer PA-Linux!" -a log.txt                       



#2 Stephan Betken

Stephan Betken

    Expert Member

  • 4.661 Beiträge

 

Geschrieben 20. März 2010 - 15:38

Obwohl ich von dieser Art der Sicherung nicht wirklich was halte: War da nicht was mit Anführungszeichen bei Pfaden mit Leerzeichen? ;)
Frag nicht, wenn Dir die Antwort nicht passt. ;)

Beste Grüße
Stephan Betken



In Memory of LukasB

#3 André_Neustadt

André_Neustadt

    Senior Member

  • 313 Beiträge

 

Geschrieben 20. März 2010 - 17:12

Aber wo genau setze ich da die Anführungszeichen? Nur bei dem Teil wo das Leerzeichen drin ist oder beim kompletten Pfad?

#4 Necron

Necron

    Moderator

  • 11.556 Beiträge

 

Geschrieben 20. März 2010 - 17:15

Aber wo genau setze ich da die Anführungszeichen? Nur bei dem Teil wo das Leerzeichen drin ist oder beim kompletten Pfad?

Der komplette Pfad muss in Anführungszeichen gesetzt werden.

Cheers,
Daniel

-Daniel's Tech Blog-


#5 André_Neustadt

André_Neustadt

    Senior Member

  • 313 Beiträge

 

Geschrieben 20. März 2010 - 23:35

Hallo,
das mit dem Copy klappt jetzt habe nur noch zwei Problem in meinem Script!

Das Script sieht jetzt wie folgt aus

del /Q /F "C:\Dokumente und Einstellungen\Administrator\Desktop\Batch\Backup\PA-Linux\log.txt" 
del /Q /F I:\Server-Images\PA-Linux >> log.txt

@echo Backup to Disk Sicherung für PA-Linux erfolgreich abgeschlossen!>> log.txt
@echo. >> log.txt
@echo Sicherungs-Job vom: %date% >> log.txt
@echo. >> log.txt
@echo Startzeit des Sicherungs-Jobs: %time:~0,8% Uhr >> log.txt
@echo. >> log.txt
@echo. >> log.txt

"D:\VMware Server\vmrun.exe" -h https://127.0.0.1:8333/sdk -u VM-Backup -p password -T server suspend "[Produktivumgebung] PA-Linux/PA-Linux.vmx" >> log.txt

copy "E:\Virtuelle Maschinen\Neuer Ordner\*.*" I:\Server-Images\PA-Linux\ >> log.txt

"D:\VMware Server\vmrun.exe" -h https://127.0.0.1:8333/sdk -u VM-Backup -p password -T server start "[Produktivumgebung] PA-Linux/PA-Linux.vmx" >> log.txt

@echo. >> log.txt

@echo Endzeit des Sicherungs-Jobs: %time:~0,8% Uhr >> log.txt
@echo Die Sicherung hat %timer% min. gedauert! >> log.txt
@echo. >> log.txt

"C:\Dokumente und Einstellungen\Administrator\Desktop\Batch\Backup\PA-Linux" mailsend.exe -d test.local -smtp 192.168.0.4 -t test@test.de -f backup@test.local +cc +bc -sub "Backup erfolgreich durchgelaufen am %date% - PA-Linux" -M "Das Backup to Disk ist erfolgreich abgeschlossen fuer PA-Linux!" -a log.txt                       


1. Er verschickt die Mail nicht automatisch mehr mit der log.txt
-Wenn ich das manuell mache ich
C:\Dokumente und Einstellungen\Administrator\Desktop\Batch\Backup\PA-Linux

und dann folgenden Befehl ausführe bekomme ich die Mail

mailsend.exe -d test.local -smtp 192.168.0.4 -t test@test.de -f backup@test.local +cc +bc -sub "Backup erfolgreich durchgelaufen am %date% - PA-Linux" -M "Das Backup to Disk ist erfolgreich abgeschlossen fuer PA-Linux!" -a log.txt                       

2. Er errechnet nicht die Zeit wie lange das Backup gedauert hat in Stunden\Minuten\Sekunden!
-
@echo Die Sicherung hat %timer% min. gedauert!


So sieht die Logdatei nach einem Backup aus!
Backup to Disk Sicherung für PA-Linux erfolgreich abgeschlossen!
 
Sicherungs-Job vom: 21.03.2010 
 
Startzeit des Sicherungs-Jobs:  0:27:38 Uhr 
 
 
E:\Virtuelle Maschinen\Neuer Ordner\Neu Textdokument.txt
E:\Virtuelle Maschinen\Neuer Ordner\Neu WordPad-Dokument.doc
        2 Datei(en) kopiert.
 
Endzeit des Sicherungs-Jobs:  0:27:53 Uhr 
Die Sicherung hat  min. gedauert! 
 

Freue mich über jede Antwort!

#6 Stephan Betken

Stephan Betken

    Expert Member

  • 4.661 Beiträge

 

Geschrieben 20. März 2010 - 23:43

Bei den anderen Befehlen hast du den kompletten Pfad zur Datei in Anführungszeichen! Das solltest du beibehalten! ;)
"C:\Dokumente und Einstellungen\Administrator\Desktop\Batch\Backup\PA-Linux[COLOR="Red"]\[/COLOR]mailsend.exe[COLOR="red"]"[/COLOR] -d test.local -smtp 192.168.0.4 -t [email]test@test.de[/email] -f [email]backup@test.local[/email] +cc +bc -sub "Backup erfolgreich durchgelaufen am %date% - PA-Linux" -M "Das Backup to Disk ist erfolgreich abgeschlossen fuer PA-Linux!" -a log.txt

Frag nicht, wenn Dir die Antwort nicht passt. ;)

Beste Grüße
Stephan Betken



In Memory of LukasB

#7 André_Neustadt

André_Neustadt

    Senior Member

  • 313 Beiträge

 

Geschrieben 20. März 2010 - 23:56

Hallo,
mh hätte ich auch alleine drauf können kommen! :( Hat jemand noch einen Tipp für mich bezüglich der Zeitberechnung?

#8 ZeroKnowledge

ZeroKnowledge

    Newbie

  • 59 Beiträge

 

Geschrieben 21. März 2010 - 09:20

wo auch immer die Zeitmessung starten soll
set /a start=%time:~0,2%*3600+%time:~3,2%*60+%time:~6,2%

wo auch immer die Zeitmessung enden soll
set /a ende=%time:~0,2%*3600+%time:~3,2%*60+%time:~6,2%

Differenz ermitteln
set /a diff=ende-start

Ausgabe
Dauer in Sekunden: %diff%

Läuft das Skript über Mitternacht, ist es Essig mit der Zeitmessung ;)

#9 Dukel

Dukel

    Board Veteran

  • 9.259 Beiträge

 

Geschrieben 21. März 2010 - 10:35

Hallo,
mh hätte ich auch alleine drauf können kommen! :( Hat jemand noch einen Tipp für mich bezüglich der Zeitberechnung?


Powershell.
Da geht das ganz einfach.

#10 André_Neustadt

André_Neustadt

    Senior Member

  • 313 Beiträge

 

Geschrieben 22. März 2010 - 09:35

wo auch immer die Zeitmessung starten soll

set /a start=%time:~0,2%*3600+%time:~3,2%*60+%time:~6,2%

wo auch immer die Zeitmessung enden soll
set /a ende=%time:~0,2%*3600+%time:~3,2%*60+%time:~6,2%

Differenz ermitteln
set /a diff=ende-start

Ausgabe
Dauer in Sekunden: %diff%

Läuft das Skript über Mitternacht, ist es Essig mit der Zeitmessung ;)


Hallo,
erstmal vielen Dank klappt wunderbar! Aber kann ich mir das auch evt. in Stunden\Minuten\Sekunden ausgeben lassen?

#11 ZeroKnowledge

ZeroKnowledge

    Newbie

  • 59 Beiträge

 

Geschrieben 22. März 2010 - 17:25

Klar geht das. Musst halt die Sekunden passend umrechnen...

set /a hh=diff/3600
set /a mm=(diff%%3600)/60
set /a ss=(diff%%3600)%%60

Oder nimm, wie hier schon mal erwähnt wurde, die Powershell ;)

#12 André_Neustadt

André_Neustadt

    Senior Member

  • 313 Beiträge

 

Geschrieben 22. März 2010 - 17:31

Klar geht das. Musst halt die Sekunden passend umrechnen...

set /a hh=diff/3600
set /a mm=(diff%%3600)/60
set /a ss=(diff%%3600)%%60

Oder nimm, wie hier schon mal erwähnt wurde, die Powershell ;)


Sprich so dann ja?

@echo Backup to Disk durchgelaufen>> log.txt
@echo. >> log.txt
@echo Sicherungs-Job vom: %date% >> log.txt
@echo. >> log.txt @echo Startzeit des Sicherungs-Jobs: %time:~0,8% Uhr >> log.txt
@echo. >> log.txt @echo. >> log.txt

set /a start=%time:~0,2%*3600+%time:~3,2%*60+%time:~6,2% >> log.txt copy "C:\Users\pa\Desktop\Test\PDF2SMTP\Bilder\*.*" C:\Users\pa\Desktop\Copy\ >> log.txt



@echo. >> log.txt

@echo Endzeit des Sicherungs-Jobs: %time:~0,8% Uhr >> log.txt
set /a ende=%time:~0,2%*3600+%time:~3,2%*60+%time:~6,2% >> log.txt
set /a diff=ende-start >> log.txt 
set /a hh=diff/3600 >> log.txt
set /a mm=(diff%%3600)/60 >> log.txt
set /a ss=(diff%%3600)%%60 >> log.txt


@echo Dauer in Sekunden: %diff% >> log.txt
@echo. >> log.txt


#13 André_Neustadt

André_Neustadt

    Senior Member

  • 313 Beiträge

 

Geschrieben 22. März 2010 - 18:58

Mh leider klappt es nicht so richtig!

Script sieht wie folgt aus...

@echo Backup to Disk durchgelaufen>> log.txt
@echo. >> log.txt
@echo Sicherungs-Job vom: %date% >> log.txt
@echo. >> log.txt 
@echo Startzeit des Sicherungs-Jobs: %time:~0,8% Uhr >> log.txt
@echo. >> log.txt 
@echo. >> log.txt

set /a start=%time:~0,2%*3600+%time:~3,2%*60+%time:~6,2% >> log.txt 

copy E:\test\*.* D:\test2\ >> log.txt



@echo. >> log.txt

@echo Endzeit des Sicherungs-Jobs: %time:~0,8% Uhr >> log.txt
set /a ende=%time:~0,2%*3600+%time:~3,2%*60+%time:~6,2% >> log.txt
set /a diff=ende-start >> log.txt 
set /a hh=diff/3600 >> log.txt
set /a mm=(diff%%3600)/60 >> log.txt
set /a ss=(diff%%3600)%%60 >> log.txt


@echo Dauer in Sekunden: %diff% >> log.txt
@echo. >> log.txt

Ausgabe wie folgt...

Backup to Disk durchgelaufen
 
Sicherungs-Job vom: 22.03.2010 
  
Startzeit des Sicherungs-Jobs: 19:53:40 Uhr 
  
 
E:\test\1.rar
E:\test\2.rar
E:\test\3.rar

      3 Datei(en) kopiert.
 
Endzeit des Sicherungs-Jobs: 19:57:11 Uhr 
Dauer in Sekunden: 211 
 

Wo mache ich den Fehler?

#14 ZeroKnowledge

ZeroKnowledge

    Newbie

  • 59 Beiträge

 

Geschrieben 23. März 2010 - 17:53

Bin grad zu faul das groß zu beschreiben, darum gibts mal die überarbeitete Komplettfassung. Solltest du vorhaben, damit weiter zu spielen, dann würde ich dir empfehlen, dich mal bissl zu dem Thema zu informieren. Oder aber du gehts weg von dem "alten" Kram und nimmst gleich die Powershell ;)


@echo Backup to Disk durchgelaufen>> log.txt
@echo. >> log.txt
@echo Sicherungs-Job vom: %date% >> log.txt
@echo. >> log.txt 
@echo Startzeit des Sicherungs-Jobs: %time:~0,8% Uhr >> log.txt
@echo. >> log.txt 
@echo. >> log.txt

set /a start=%time:~0,2%*3600+%time:~3,2%*60+%time:~6,2%

copy E:\test\*.* D:\test2\ >> log.txt

@echo. >> log.txt

@echo Endzeit des Sicherungs-Jobs: %time:~0,8% Uhr >> log.txt
set /a ende=%time:~0,2%*3600+%time:~3,2%*60+%time:~6,2%
set /a diff=ende-start
set /a hh=diff/3600
set /a mm=(diff%%3600)/60
set /a ss=(diff%%3600)%%60


@echo Dauer des Vorgangs: %hh%:%mm%:%ss% >> log.txt
@echo. >> log.txt


#15 blub

blub

    Moderator

  • 7.605 Beiträge

 

Geschrieben 23. März 2010 - 17:59

Oder aber du gehts weg von dem "alten" Kram und nimmst gleich die Powershell ;)


Apropos Powershell: Um virtuelle Maschinen unter HyperV mit Powershell zu administrieren, gibt es eine zusätzliche Managementlibrary
PowerShell Management Library for Hyper-V

Evtl. hat VMware etwas ähnliches

cu
blub

Ein Kluger bemerkt alles, Ein Dummer macht über alles eine Bemerkung. (Heinrich Heine)