Windows: Robocopy-Backup mit Versionen

Mit einem simplen Skript lässt sich eine Datensicherung auf Basis von Robocopy und mit verschiedenen Versionen realisieren. So hat man nicht nur eine Kopie-Sicherung, sondern kann mehrere Versionen wie z.B. Tage, Wochen, Monate, je nachdem wie oft man es ausführt, zurück gehen.

Klar, es wird Code-Recycling von Drive Snapshot gemacht:

Windows: Versions-basierte Drive Snapshot-Sicherungen

Daraus folgen für Robocopy diese Skript-Zeilen:

@echo off

rem Konfiguration

 set Source=C:\Projekte
 set Destination=D:\Backup

 set NumberOfVersionsToKeep=7

rem Version.txt pruefen, falls diese nicht existiert, dann anlegen

 if not exist Version.txt echo %NumberOfVersionsToKeep% > Version.txt

rem Version auslesen und ggf. festlegen

 set /p Version=< Version.txt
 set Version=%Version: =%
 set /A Version=Version %% NumberOfVersionsToKeep + 1
 echo %Version% > Version.txt

rem Ziel-Ordner pruefen und ggf. anlegen

 if not exist "%Destination%\%Version%" mkdir "%Destination%\%Version%"

rem Robocopy ausfuehren

 robocopy "%Source%" "%Destination%\%Version%" /mir /r:0 /w:0 /np /log:robocopy-%Version%.log

2 Kommentare

  • Pingback: Windows: Robocopy mit VSS (Schattenkopie) – Andy's Blog

  • Die angegebene Methode zur Versionierung hat den Nachteil, dass man erst nachschauen muss, welches die aktuelle Version ist. Folgende Zeilen reichen, damit die Versionen ab 1 immer älter werden:

    rem Höchste Version wird zur 1 als Basis der neuesten Version
    if exist „%BackupZiel%%NumberOfVersionsToKeep%“ rename „%BackupZiel%%NumberOfVersionsToKeep%“ „0“
    rem Bestehende Versionen von hinten an hochsetzen: Name des Ordners um 1 erhöhen
    for /l %%i in (%NumberOfVersionsToKeep%,-1,1) do (
    set /a „PrevVersion=%%i – 1“
    if exist „%BackupZiel%!PrevVersion!“ rename „%BackupZiel%!PrevVersion!“ „%%i“
    )

Schreibe einen Kommentar

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