Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Prof. Hilfe für Backup per Drive Snapshot mit Batch

Frage Entwicklung Batch & Shell

Mitglied: zeusplanet

zeusplanet (Level 1) - Jetzt verbinden

05.08.2014 um 17:51 Uhr, 2590 Aufrufe, 3 Kommentare

Hi Leute,

ich bin am verzweifeln. Habe mich versucht tief rein zu arbeiten und werde einfach nicht fertig, so wie es sein soll.

Ich brauch Jemanden, der sich mit Scripting gut auskennt und mit dem Programm Drive Snapshot. Folgendes will ich und habe ich bis dato geschafft:

1. Alles soll per Variablen zu lösen sein. Sehr flexibel, damit auch ein Server mal wieder hinzugefügt und entfernt werden kann. geht, dank "for /F "delims=" %%i in ("!serverlist!")".

2. Update der Snapshot.exe: wget lädt die neue Version herunter. Die alte wird abgespeichert, es wird die neue lizenziert und bei einem Fehler wird die alte Version zurück gesichert, damit das Backup ungestört weiter laufen kann. Eine Mail bzgl. dem fehlgeschlagenem Update wird trotzdem versendet. geht soweit komplett.

3. Anzahl der Snapshots: Ich kann es noch nicht komplett testen, weil das ganze Script noch nicht 100%ig funktioniert. Aber es soll mal so aussehen: Ich gebe die zahl 30 ein und ich bekomme ein Full-Snapshot und 29 differenzielle Snapshots. Ältere sollen gelöscht werden.

4. Eigentliche Snapshot: Wenn kein Full vorhanden ist, wird eines erstellt. geht!

5. Ich bekomme leider nicht alle Laufwerke gesichert. Sollte aber eigentlich weiter gehen...

6. Ich arbeite mit "logicaldisks"! bei beiden Windows Server 2008 geht das ohne Probleme. Beim 2003er Server bleibt psexec einfach hängen. Also psexec startet in der Batch und versucht die Laufwerke zu ermitteln und das war es dann auch. Der Zeiger in der Batch blinkt nur freundlich. Diese Laufwerke wollte ich dann in eine Variable schreiben und Drive Snapshot soll anhand derer dann sichern.

7. Ich will pro Server nur eine Mail mit Log-Inhalt. Sollte von der Theorie her funktionieren!


Wer traut sich, wer kann mir helfen?
Code:

:- ******************************************************************************************** 
:-  
:- Wird das Skript in der "Aufgabenplanung" hinterlegt, muss unter "Starten in (Optional):" 
:- das "%workdir%" Verzeichniss eingetragen werden. 
:-  
:- ******************************************************************************************** 
 
 
:- -------------------------------------------------------------------------------------------- 
:- Variablen setzen (nicht vorhandene Verzeichnisse sind vorher zu erstellen!) 
:- -------------------------------------------------------------------------------------------- 
 
setlocal enabledelayedexpansion 
 
:- -------------------------------------------------------------------------------------------- 
:- Variablen wurden fürs Forum natürlich geändert!!!! 
:- -------------------------------------------------------------------------------------------- 
 
set domain=domian 
set user=Administrator 
set password=Password123456 
set mailserver=192.168.168.55 
set maildomain=firma.com 
set mailrecipient=mail@firma.com 
set workdir=\\server01\it$\Snapshot 
set logs=\\server01\it$\Snapshot\logs 
set tools=\\server01\it$\Snapshot\tools 
set serverlist=SERVER01,SERVER02,SERVER03 
set countofsnapshots=7 
set destination=\\backup\s$ 
 
:- -------------------------------------------------------------------------------------------- 
:- Snapshot Update: sichern, updaten, lizensieren 
:- Bei Update Fehler: ruecksichern und benachrichtigen 
:- -------------------------------------------------------------------------------------------- 
:snapshot_update 
 
ren "%workdir%\snapshot.exe" snapshot_last.exe 
 
"%tools%\wget\wget.exe" -t3 --retry-connrefused -w60 -T90 --no-cache -O"%workdir%\snapshot.exe" -o"%logs%\update.txt" "http://www.drivesnapshot.de/download/snapshot.exe" 
"%workdir%\snapshot.exe" --register:"%workdir%\license.txt" >> "%logs%\update.txt" 
 
if '%errorlevel%'=='0' goto update_success 
 
copy "%workdir%\snapshot_last.exe" "%workdir%\snapshot.exe" 
"%tools%\gbmail.exe" -v -to %mailrecipient% -h %mailserver% -from snapshot.update@%maildomain% -s "Snapshot-Meldung: Update fehlgeschlagen" -file "%logs%\update.txt" 
:update_success 
del "%workdir%\snapshot_last.exe" 
 
 
:- -------------------------------------------------------------------------------------------- 
:- hash-Verzeichnisse anlegen 
:- -------------------------------------------------------------------------------------------- 
:hash_create 
 
for /F "delims=" %%i in ("!serverlist!") do for %%A in (%%i) do if not exist "\\%%A\c$\Snapshot_hash" md "\\%%A\c$\Snapshot_hash" 
 
:- -------------------------------------------------------------------------------------------- 
:- COUNTOFSNAPSHOTS: Anzahl der Variable prüfen. Dateien älteren Datums werden gelöscht. 
:- -------------------------------------------------------------------------------------------- 
:countofsnapshots 
 
for /F "delims=" %%i in ("!serverlist!") do for %%A in (%%i) do for /F "skip=%countofsnapshots% delims=" %%j in ('dir "%destination%\%%A\*.sna" /A:-D /B /O:-D') do (del "%destination%\%%A\%%j") 
 
:- -------------------------------------------------------------------------------------------- 
:- LOGICALDISKS: Anzahl der lokalen Laufwerke ermitteln und für eine vollständige Sicherung  
:- in eine Variable schreiben. 
:- -------------------------------------------------------------------------------------------- 
:logicaldisks 
 
for /F "delims=" %%i in ("!serverlist!") do for %%A in (%%i) do "%tools%\psexec.exe" /accepteula \\%%A -u %domain%\%user% -p %password% -h cmd /c for /F "tokens=2 delims==" %%d in ('wmic logicaldisk where "drivetype=3" get name /format:value') do echo %%d 
 
:- -------------------------------------------------------------------------------------------- 
:- SNAPSHOT FUL: vollständiges Images erstellen, wenn keines vorhanden ist oder wenn lt. 
:-               countofsnapshots das alte Images gelöscht wurde. 
:- SNAPSHOT DIF: differentielles Image erstellen, wenn ein noch gültiges, vollständiges Image 
:-               gefunden und die Anzahl der countofsnapshots noch nicht erreicht wurde. 
:- -------------------------------------------------------------------------------------------- 
:snapshot_complete 
 
for /F "delims=" %%i in ("!serverlist!") do for %%A in (%%i) do "%tools%\psexec.exe" /accepteula \\%%A -u %domain%\%user% -p %password% -c -f -h %workdir%\snapshot.exe C: %destination%\%%A\$computername_$disk_$type.sna -L307200 --AllWriters --AutoBackupSize:512 --CreateDir --FullIfHashIsMissing -RWT --exclude:"\Windows\Memory.dmp","\Windows\Minidump","\Windows\Temp" -h"%SystemDrive%\Snapshot_hash\$computername_$disk.hsh" --LogFile:%logs%\$computername.txt && ( 
   "%tools%\gbmail.exe" -v -to %mailrecipient% -h %mailserver% -from snapshot.%%A@%maildomain% -s "Snapshot-Meldung: Auftrag erfolgreich" -file "%logs%\%%A.txt" 
   ) || ( 
   "%tools%\gbmail.exe" -v -to %mailrecipient% -h %mailserver% -from snapshot.%%A@%maildomain% -s "Snapshot-Meldung: Auftrag fehlgeschlagen" -file "%logs%\%%A.txt" 
Mitglied: Nr60730
05.08.2014, aktualisiert um 18:35 Uhr
Moin,

  • pack das mal in Code Blöcke.

dann was soll das denn?
01.
for /F "tokens=2 delims==" %%d in ('wmic logicaldisk where "drivetype=3" get name /format:value') do echo %%d
Das echo ist noch vom Test?

Evtl. läuft das unter 2003 so besser:
01.
echo x|wmic logicaldisk where "drivetype=3" get name ^|find ":"
IMHO will 2k3 da "irgendeine Taste" gedrückt (jedenfalls hab ich das in meinem Snapshotscript so geschrieben - wird nen Grund haben)

edit
set workdir=\\server01\it$\Snapshot
set serverlist=SERVER01

Ist so Schwachfug² - denn ich sehe nirgendwo, dass Du das Ziel des Backups selber vom Snapshot ausschliesst.

/edit
Bitte warten ..
Mitglied: zeusplanet
05.08.2014 um 22:15 Uhr
Nabend,

sorry, dass ich keine Code-Blöcke verwendet hatte. Aber jetzt hast es ja schon durch gelesen...

01.
for /F "tokens=2 delims==" %%d in ('wmic logicaldisk where "drivetype=3" get name /format:value') do echo %%d
Wie was soll das? Verstehe deine Frage nicht ganz. Ist zum ermitteln der Laufwerksbuchstaben gewesen. Unter 2008 funktioniert das einwandfrei. 2003er Server wie gesagt muckt hierbei.

Ja, der echo war hier noch vom Test.

Ich habe deinen Code eingefügt. Bekomme als Meldung, auch in einer leeren, einfachen Batch mit nur deinem Ausdruck die Meldung: Ungültiger GET-Ausdruck.

Schwachfug²??? Das ist nicht das Ziel, sondern nur das Arbeitsverzeichniss vom Snapshot im welchem die Anwendung und die Logs liegen.


Danke erst einmal. Kann das alles natürlich, wenn gewünscht, nochmal in Code-Blöcke einfügen.
Gute Nacht!
Bitte warten ..
Mitglied: zeusplanet
08.08.2014 um 11:06 Uhr
Hallo Zusammen nochmal,

kann mir keiner helfen? Also momentan stehe ich an folgender Situation fest:

01.
for /F "delims=" %%i in ("!serverlist!") do for %%A in (%%i) do "%tools%\psexec.exe" /accepteula \\%%A -u %domain%\%user% -p %password% -h cmd /c for /F "tokens=2 delims==" %%d in ('wmic logicaldisk where "drivetype=3" get name /format:value') do echo %%d
Damit versuche ich von allen Server lt. serverlist die Partitionen auszulesen. Das echo ist aktuell nur für einen Test. Die Laufwerke sollen später am besten pro Server in eine Variable geschrieben werden.

Problem bis dato: Bei den 2008er Server funktioniert obige Anforderung. Beim 2003er Server hängt psexec einfach. Cursor blinkt fröhlich. Es geht nicht weiter. Gibt es eine bessere Möglichkeit? Der vorgeschlagene Ausdruck von Nr60730 bringt mir leider im command-prompt nur einen Get-Fehler.
Bitte warten ..
Neuester Wissensbeitrag
DSL, VDSL

Telekom blockiert immer noch den Port 7547 in ihrem Netz

(3)

Erfahrungsbericht von joachim57 zum Thema DSL, VDSL ...

Ähnliche Inhalte
Backup
Drive Snapshot - V1.44 released (2)

Link von Kuemmel zum Thema Backup ...

Batch & Shell
Google drive komplexer upload per batch oder powershell (6)

Frage von functionstrut zum Thema Batch & Shell ...

Batch & Shell
Batch zum bearbeiten mehrerer CSV (2)

Frage von Matzus87 zum Thema Batch & Shell ...

Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...