Bvckup 2 bringt von sich aus leider keine Möglichkeit mit, mehrere Versionen einer Datensicherung vorzuhalten.
Eine recht einfache Variante kann darin bestehen, mehrere Jobs anzulegen, die zu jeweils anderen Zielen verweisen. So auf die Art “Backup to”:
\Ziel\v1\ \Ziel\v2\ ..
Statt Versionsnummern können z.B. Tage, Wochen, Monate, etc. verwendet werden. Es geht aber auch anders, wie die nachfolgenden Zeilen zeigen.
Jede Variante hat ihre Vor- und Nachteile: Bei “mklink” und “net use” ist leider kein delta copying möglich, da das Ziel jedes Mal neu gescannt werden muss. Das bedeutet, das geänderte Dateien als Ganzes kopiert werden und nicht nur die Änderungen innerhalb der betreffenden Dateien. Dies dauert in der Regel länger und kann bei langsamen Netzwerkverbindungen zum Problem werden. Abhilfe schafft da die Verwendung von mehreren Backup-Jobs mit jeweils eigenem Ziel, dazu am Ende mehr, aber zunächst der Reihe nach.
Die nachfolgenden Skripte liegen unter “C:\Backup” und müssen den eigenen Bedürfnissen angepasst werden. Ferner muss bei der Verwendung von “mklink” und “net use” im Backup-Job unter “detecting changes” “Re-scan destination on every run” aktiviert sein:
Die Skripte werden dann im jeweiligen Job unter “More options – External commands & alerts” eingebunden:
mklink (Verknüpfung)
Möchte man nur einen Job verwenden, so kann über ein “Pre-backup”-Skript das Ziel sozusagen umgebogen werden. Der Trick besteht darin, einen Link (aka Verknüpfung oder symbolische/n Verknüpfung/Link) zu verwenden. Verschiedene Beispiele finden sich im Bvckup 2 Support Forum:
Dynamically adjusting backup destination
Das Ziel muss dabei nicht zwangsläuffig lokal sein, der Link kann auch auf ein Ziel im Netzwerk, z.B. ein NAS, verweisen. Dann sollte allerdings der UNC-Pfad verwendet und die Anmeldung sichergestellt werden:
rem Anmeldung gegebenueber dem Ziel im Netzwerk net use \\<IP oder Hostname>\<Freigabe> <Kennwort> /user:<Benutzername> /persistent:no rem Verknuepfung erstellen mklink C:\Backup\Current \\<IP oder Hostname>\<Freigabe>\<Version
Als “Post-backup”-Skript kann die Verknüpfung entfernt und die Anmeldung wieder aufgehoben werden:
rem Verknuepfung entfernen del C:\Backup\Current rem Anmeldung aufheben net use \\<IP oder Hostname>\<Freigabe> /d
Idealerweise ist das Backup-Ziel nur während der Datensicherung erreichbar, um außerhalb des Sicherungszeitfensters nicht anfällig für z.B. CryptoTrojaner (aka Erpressungs- oder Verschlüsselungstrojaner) zu sein, daher die An-/Abmeldung.
Anbei ein Beispiel Pre- und Post-backup-Skript mit Versionsnummern:
Pre-backup.cmd: @echo off rem Ins Arbeitsverzeichnis wechseln cd C:\Backup rem Konfiguration set Destination=\\<IP oder Hostname>\<Freigabe> set DestinationUser=<Benutzername> set DestinationPassword=<Kennwort> set NumberOfVersionsToKeep=3 rem Gegenueber dem Server oder NAS anmelden net use "%Destination%" "%DestinationPassword%" /user:"%DestinationUser%" /persistent:no rem Version.txt erstellen, falls diese nicht existiert if not exist Version.txt echo %NumberOfversionsToKeep% > Version.txt rem Aktuelle Version einlesen, hochzaehlen und in "Version.txt" schreiben set /p Version=< Version.txt set /A Version=Version %% NumberOfVersionsToKeep + 1 echo %Version% > Version.txt rem Ziel-Verzeichnis erstellen, falls es nicht existiert if not exist "%Destination%\%Version%" mkdir "%Destination%\%Version%" rem Symbolische Verknuepfung vom lokalen System zum Server oder NAS erstellen mklink /d "C:\Backup\Current" "%Destination%\%Version%"
Post-backup.cmd: @echo off rem Symbolische Verknuepfung entfernen rmdir C:\Backup\Current /q rem Anmeldung gegenueber dem Server oder NAS entfernen net use "%Destination%" /d
net use (Netzlaufwerk)
Mittels “net use” kann man nicht nur einfach zu einer Freigabe, sondern auch direkt zu einem Ordner innerhalb einer Freigabe ein Netzlaufwerk einrichten. Diesen Umstand kann man nutzen, mehrere Versionen zu sichern. Das dazugehörige “Pre-backup”-Skript ist dabei dem von “mklink” sehr ähnlich:
Pre-backup.cmd: @echo off rem Ins Arbeitsverzeichnis wechseln cd C:\Backup rem Konfiguration set Destination=\\<IP oder Hostname>\<Freigabe> set DestinationUser=<Benutzername> set DestinationPassword=<Kennwort> set NumberOfVersionsToKeep=3 rem Version.txt erstellen, falls diese nicht existiert if not exist Version.txt echo %NumberOfversionsToKeep% > Version.txt rem Aktuelle Version einlesen, hochzaehlen und in "Version.txt" schreiben set /p Version=< Version.txt set /A Version=Version %% NumberOfVersionsToKeep + 1 echo %Version% > Version.txt rem Ziel-Verzeichnis erstellen, falls es nicht existiert if not exist "%Destination%\%Version%" mkdir "%Destination%\%Version%" rem Netzlaufwerk verbinden net use V: "%Destination%\%Version%" "%DestinationPassword%" /user:"%DestinationUser%" /persistent:no
Post-backup.cmd: @echo off rem Netzlaufwerk trennen net use V: /d
Mehrere Jobs mit Versionierung, automatischer Steuerung und delta copying
Damit man dennoch den Vorteil des delta copying nutzen kann, muss man zwangsläuffig mit mehreren Jobs und einem Skript arbeiten. Ausführen (lassen) muss man dabei nur einen Job, der die Anderen wiederum steuert. Das klingt nun komplizierter als es eigentlich ist. Lediglich die Ersteinrichtung und Erstbefüllung der Ziele benötigt mehr Zeit, danach geht es fix.
Folgende Ordnerstruktur wird benötigt:
C:\Backup C:\Backup\VersionJobDst C:\Backup\VersionJobSrc
Die Ordner “VersionJobDst” und “VersionJobSrv” dienen nur als Fake-Quelle und -Ziel für den Steuerungs-Job, da jeder Job zwingend “Backup from” und “Backup to” benötigt.
Als nächstes wird das “Pre-backup”-Skript benötigt, das die Versionierung und Job-Steuerung übernimmt:
ExternalVersion.cmd: @echo off rem Ins Arbeitsverzeichnis wechseln cd C:\Backup rem Konfiguration set NumberOfVersionsToKeep=3 rem "Version.txt" erstellen, falls diese nicht existiert if not exist Version.txt echo %NumberOfversionsToKeep% > Version.txt rem Aktuelle Version einlesen, hochzaehlen und in "Version.txt" schreiben set /p Version=< Version.txt set /A Version=Version %% NumberOfVersionsToKeep + 1 echo %Version% > Version.txt rem Bvckup 2-Job der entsprechenden Version aktivieren und starten rem WICHTIG: Zuvor unter "Options - Preferences - Backup Scheduling" "Enable concurrent backups" aktivieren! "C:\Program Files\Bvckup 2\bvckup2.exe" --command enable "%Version%" "C:\Program Files\Bvckup 2\bvckup2.exe" --command start "%Version%" rem Den Status von Bvckup 2 in Schleife pruefen, ist der Job im Leerlauf, diesen (wieder) deaktivieren rem Schleife, um den Status zu pruefen rem Wenn der Status "idle" (entspricht Rueckgabewert "102") ist, dann die Schleife verlassen :loop timeout /t 1 cmd /c "C:\Program Files\Bvckup 2\bvckup2.exe" --command status %Version% if not %errorlevel%==102 goto loop rem Backup-Job deaktivieren "C:\Program Files\Bvckup 2\bvckup2.exe" --command disable %Version%
Wie in den Kommentaren des Skripts zu lesen ist, ist es relevant, gleichzeitige Backups zuzulassen, da sonst immer nur ein Job laufen kann:
Unter "Options - Preferences - Backup Scheduling" "Enable concurrent backups" aktivieren.
Für diese Variante müssen allerdings zwei Jobs gleichzeitig laufen können (1x Steuerungs-Job, 1x der eigentliche Backup-Job). Damit man nicht mal aus versehen einen “Versions-Job” startet, werden Diese nach ihrer Ausführung deaktiviert. Der jeweilige Job wird automatisch zur Sicherung hin aktiviert und ausgeführt.
Nun erstellt man den “Steuerungs-Job”, gibt als Quelle und Ziel die zuvor erstellten Ordner an und definiert das obige Skript als “Pre-backup-command”. Dieser Job kann z.B. über den integrierten Zeitplanungsdienst zu bestimmten Zeiten ausgeführt werden.
Als nächtes legt man den ersten “Versions-Job” an. In diesem Beispiel wird als Name (Description) schlicht die jeweilige Versionsnummer verwendet. Die restlichen Einstellungen können je nach Anspruch auf den Vorgaben belassen werden:
Damit man nicht jeden einzelnen “Versions-Job” händisch anlegen muss, reicht es aus, zunächst Einen sozusagen als Vorlage zu konfigurieren und Diesen dann zu Klonen (“Rechtsklick – Clone…”). Dann nur noch die “Description” und bei “Backup to” ganz hinten die Versionsnummer ändern und fertig bzw. weiter zum nächsten Job.
Zu Überlegen ist, ob man gelöschte Elemente noch eine zeitlang aufbewahren möchte oder ob diese gleich gelöscht werden sollen. Per Vorgabe werden Diese zwei Wochen lang archiviert. Da man allerdings hier mehrere Versionen verwendet, könnte man auf diese Archivierung verzichten.
Am Ende sieht es in Bvckup 2 in etwa so aus:
Wie man im vorletzten Screenshot sehen kann, wird in diesem Beispiel auf eine FRITZ!BOX gesichert. Da Diese bis jetzt (gemeint ist pre FRITZ!OS 7.x) NTFS eher recht schlecht unterstützt, WLAN als weiterer Flaschenhals ebenfalls dazukommen kann und generell die NAS-Performance dieses Routers gemächlich ist, kann dank Bvckup 2 und dessen delta copying recht schnell die Nutzdaten gesichert werden. Für die Erstbefüllung oder Erstbestückung der Backup-Ziele sollte allerdings je nach Datenmenge entsprechend Zeit und nach Möglichkeit auf eine verkabelte Netzwerkverbindung zurückgegriffen werden.
Troubleshooting:
Beim Test stolperte man über folgendes Problem:
Bvckup 2: Destination file timestamps have changed since the last run
Abhilfe schafft bislang nur der dort genannte “Plan B”.
Verheiratet, Vater von zwei Kindern, eines an der Hand, eines im Herzen. Schon immer Technik-Freund, seit 2001 in der IT tätig und seit über 10 Jahren begeisterter Blogger. Mit meiner Firma IT-Service Weber kümmern wir uns um alle IT-Belange von gewerblichen Kunden und unterstützen zusätzlich sowohl Partner als auch Kollegen.
0 Kommentare
1 Pingback