Windows: Rotationssicherung mit Drive Snapshot – Version 3.0

Die Version 2.0 ist noch gar nicht so lange her, aber dennoch gibt es ein paar kleine Änderungen:

  • Umstellung beim Schreiben der Logs auf den Parameter „–LogFile:“. Diese Änderung wurde notwendig, damit der Sensor von Server-Eye die Datensicherung erfolgreich überwachen kann. Siehe dazu auch diesen Beitrag.
  • Überwachen des Errorlevels von Drive Snapshot um anhand dessen eine einfache E-Mail mit dem Text „Die Datensicherung … war (NICHT) erfolgreich“ versenden zu können. Der Befehl zum Versenden des vollständigen Logs ist nach wie vor vorhanden.
  • Als „Voreinstellung“ ist nun ein lokales Backup-Ziel (statt Netzlaufwerk) eingetragen.

Voraussetzungen

  • Einen Ordner “C:\Backup”, einen Unterordner “C:\Backup\Tools” und “C:\Backups\Logs” anlegen.
  • Die Tools weekday.exe (ab 3.2 nicht zwingend erforderlich) und smtpsend.exe herunterladen und in den Unterordner “Tools” speichern.
  • Eine Datei „week.txt“ mit dem Inhalt „4“ (ohne Anführungszeichen) unter „C:\Backup“ erstellen, damit das erste erstellte Backup mit der „Woche 1“ beginnt.
  • Wird das Skript als „Geplanter Task“ (bis Windows XP/Server 2003) bzw. „Aufgabe“ (ab Windows Vista/Server 2008) ausgeführt, muss unter „Ausführen in:“ bzw. „Starten in (optional):“ „C:\Backup“ eingetragen werden.

Das Skript

Das Skript muss (wie gehabt) auf die eigenen Anforderungen (Lokales oder Netzwerk-Backup, E-Mail-Versand, zu sichernde Laufwerke, etc.) angepasst werden.

DSRotBackup_v3.zip

DSRotBackup_v31.zip – Änderungen siehe Update vom 28.08.2015 am Ende des Beitrags.

DSRotBackup_v32.zip – Ändernugen siehe Update vom 12.01.2017 am Ende des Beitrags.

Für Windows ab Vista wird die Boot-Partition (HD1:1) berücksichtigt.

Als maximale Größe für die Abbilddatei wird mittels des Parameters “-L” für die Boot-Partition ab Windows Vista 350 MB (Vista/7/2008/2008 R2 = 100MB, 8/2012 = 350MB) und für das Laufwerk “C:\” 300 GB angegeben.

Möchte man dieses Skript unter Windows XP verwenden, so sind die Zeilen mit “snapshot.exe HD1:1…” mit einem vorangestellten “rem” auszukommentieren.

Verwendet man ein Netzlaufwerk, so ist das Skript entsprechend abzuändern.

Sichert man mehr als das Laufwerk “C:\” so kann man einfach weitere Laufwerke entsprechend anhängen:

snapshot.exe C:+D:...

 Links

Windows: Fehler mit Drive Snapshot v1.41 und dem Parameter “–AllWriters” vermeiden

Windows: Drive Snapshot 1.41

Windows: Drive Snapshot, Windows 8 und Windows Server 2012

Windows: VSS-Fehler mit Drive Snapshot vermeiden

Update 28.08.2015

In Version 3.1 gibt es ein paar wenige „kosmetische“ Veränderungen. So wurden die Parameter „–FullIfHashIsMissing“ und „–CreateDir“ an die Snapshot-Befehle angehängt (siehe Snapshot – Kommando Zeilen Parameter für Windows). Ferner wurde „-L“ auf „-L0“ geändert (siehe dazu Drive Snapshot – Online-Hilfe und Handbuch – Ein Vergleich lohnt sich). Darüber hinaus ist im neuen ZIP-Archiv bereits die Ordnerstruktur und die Weekday.exe enthalten.

Insgesamt sollte es mit der neuen Version einfacher bzw. schneller sein, Drive Snapshot mit diesem Skript zum Laufen zu bringen. An die persönlichen Anforderungen anpassen muss man das Skript dennoch.

Tipp: Möchte man nicht via „–FullIfHashIsMissing“ die erste Vollsicherung erstellen, so kann man Zeile 42 („REM SET Weekday=Monday“)einkommentieren und das Skript einmalig ausführen. Anschließend die Zeile wieder auskommentieren.

Update 12.01.2017

Mit Version 3.2 gibt es ein paar weitere Änderungen:

Ab Zeile 42:

Alternative zur „Weekday.exe“ hinzugefügt. Keine Abhängigkeit zu externem Tool. Diese Änderung wurde notwendig, da unter Umständen AutoIt-Anwendungen als Aufgabe „hängen“ bleiben.

Siehe dazu auch die Kommentare unter

Windows: weekday.exe – Ein kleines Tool für die Kommandozeile und Skripts

Ab Zeile 82:

Vor dem Start der eigentlichen Vollsicherung wird der alte Backup-Satzes entfernt, um Platz-Problemen vorzubeugen (DS benötigt ggf. mehr Speicher während die Sicherung erstellt wird) und um zu verhindern, das versucht wird von unvollständigen Satz wiederherzustellen.

Ab Zeile 93:

Ereignisprotokoll-Einträge werden erstellt (relevant für neuen Server-Eye DriveSnapshot-Sensor), siehe dazu:

Server-Eye, Drive Snapshot und Einträge ins Ereignisprotokoll – Ideen und Umfrage

154 Gedanken zu „Windows: Rotationssicherung mit Drive Snapshot – Version 3.0

  1. Hallo Andy, bin durch Zufall auf dein Script gestoßen und möcht mich erstmal dafür bedanken!
    ich habe zwar bereits regelmäßige Sicherungen mittels DS am laufen, möchte das „System“ aber nun auf diesen Script umstellen.
    Die nötigen Anpassungen liefen ohne größere Probleme. Diese gab es aber beim Mailversand mit dem Tool.
    es kam immer die Meldung: „Permanent message handling problem [60]“ zu deutsch User/Passwort falsch.
    kopierte ich die smtpsend.exe… Zeile aus dem Script in eine eigene Batch, lief alles einwandfrei?????!!!!!!
    Als Ursache für das Verhalten konnte ich schließlich die Zeile:
    setlocal disableextensions disabledelayedexpansion im Block :eventlog ermitteln!
    Sobald ich diese auskommentiere läuft alles! 🙂
    Ich weiß nicht ob das Auskommentieren irgendwelche Auswirkungen hat, wollte es aber der Vollständigkeithalber hier anmerken!
    Ach ja, das System läuft auf W10-64 Ausgabe 1703

    Ich verwende übrigens eine Laufwerksvariable in der Art:
    Set Quelle=C:
    ……
    snapshot.exe %Quelle% …..

    das vereinfacht die Anpassung auf einzelne Laufwerke erheblich! 😉

    Gruß
    franz

  2. hallo andy,
    der vollständigkeithalber zu meinem Post oben:
    „setlocal enableextensions“ entfernt aus allen Variablen die NACH dem Befehl per Set… definiert werden eventuell vorhandene ‚!‘
    aus set test = abc!123 wird also abc123
    Da ich in meinem Mailpasswort ein ‚!‘ verwende, war bei Smtpsend dann logischerweise das Passwort (dank fehlendem ‚!‘) falsch!!!!
    vielleicht hilft der tipp ja jemandem! 😉

    Gruß
    franz

  3. Ich nutze folgendes Script für Backup, es wird bmail.exe und ftp2use benötigt. Beide kostenlos.
    ———————————————————-
    @echo off
    rem ************************************** VARIABLEN setzen ******************************************
    set ServerIP=192.*.*.*
    set Firma=**********
    set Backuppfad=Backup
    set Passwort=******
    set Benutzer=******
    set Mailserver=mail.******.de
    set MailAbsender=backup******.de
    set MailEmpfaenger=info******.de
    set /A AnzahlTageDiffBackup=19
    set /A AnzahlTageAlleBackup=150
    set WindowsLaufwerk=C
    set Medium=SYNOLOGY

    IF EXIST %public%%FIRMA%_%MEDIUM%_%WINDOWSLAUFWERK%.hsh (
    set Backup=DIFF
    ) ELSE (
    set Backup=FULL
    )

    rem ***************************** Backup erstellen und emailversand **********************************

    C:
    cd %public%
    snapshot64.exe HD1:* ftp://%BENUTZER%:%PASSWORT%@%SERVERIP%/%BACKUPPFAD%/%COMPUTERNAME%/$date_$hour$minute_%BACKUP%_$disk.sna -h%public%%FIRMA%_%MEDIUM%_$disk.hsh -l0 –FullIfHashIsMissing –CreateDir -R –PrintTotals –LogFile:%public%snapshot.log
    if %errorlevel% == 0 (
    bmail.exe -s %MAILSERVER% -t %MAILEMPFAENGER% -f %MAILABSENDER% -a „Reportmailer (%FIRMA% – %COMPUTERNAME%)“ -b „%BACKUP% Backup erfolgreich angelegt | %MEDIUM%“ -h -m snapshot.log
    ) else (
    bmail.exe -s %MAILSERVER% -t %MAILEMPFAENGER% -f %MAILABSENDER% -a „Reportmailer (%FIRMA% – %COMPUTERNAME%)“ -b „%BACKUP% Backup NICHT erfolgreich angelegt | %MEDIUM%“ -h -m snapshot.log
    )

    rem ****************** Hashfile und Log löschen, um ein Vollbackup generieren **************************

    del %public%snapshot.log /q

    Forfiles /P %public% /M %FIRMA%_%MEDIUM%_%WINDOWSLAUFWERK%.hsh /D -%AnzahlTageDiffBackup% /C „cmd /c del /q %FIRMA%_%MEDIUM%_*.hsh“

    C:
    cd“Program FilesFerro SoftwareFtpUse“
    ftpuse X: %SERVERIP%/%BACKUPPFAD% %PASSWORT% /USER:%BENUTZER% /HIDE
    ping localhost -n3
    Forfiles /P X:%COMPUTERNAME% /M ??????_????_FULL*.* /D -%AnzahlTageAlleBackup% /C „cmd /c del /q @path“
    Forfiles /P X:%COMPUTERNAME% /M ??????_????_DIFF*.* /D -%AnzahlTageDiffBackup% /C „cmd /c del /q @path“
    ftpuse X: /DELETE

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.