Windows Backup Teil 3/4: Zeitgesteuertes Backup mit robocopy

Bisher kann man mit den gezeigten Parametern schon ein „intelligentes“ Kopieren/Synchronisieren ausführen. Ein weiterer interessanter Aspekt ist die Möglichkeit, robocopy in einer Dauerschleife, oder zeitgesteuert laufen zu lassen.

Man kann hierfür die Parameter „/MOT:“ (Monitor <Time> ) und „/MON:“ (Monitor N <Anzahl geänderter Dateien> ) angeben, bzw. eine Kombination aus beiden Parametern.
Soll robocopy automatisch wieder gestartet werden, wenn sich mehr als 20 Dateien geändert haben so würde der Parameter „/MON:20“ lauten.

winback3-01
Soll der Robocopy-Befehl jeweils eine Stunde nach dem letzten Lauf ausgeführt werden, so geht dies mit /MOT:60

winback3-02
Aber Achtung:
Hier wird eine Stunde gewartet, nachdem der letzte Lauf abgeschlossen wurde. Es läuft demnach nicht jede Stunde, sondern eine Stunde nach dem Ende des letzten Kopiervorgangs.

Angabe von Sperrzeiten

Um, z.B.: bei einer Firma, nicht in die Produktivzeit eines Server zu fallen, kann man mit dem Parameter /RH (Run Hours) auch einen Zeitbereich angeben, in dem Robocopy ausgeführt werden darf.
Die Angabe erfolgt als Startzeit-Endezeit. Die Zeit wird 4stellig im 24h-Format angegeben.
„/RH:1800-0600“ würde demnach das Kopieren zwischen 18Uhr Abends bis 6Uhr Morgens erlauben.

winback3-03
Aber auch hier gibt es wieder eine Stolperfalle.
Würde der obige Kopierbefehl um 5:59h ausgeführt werden, so ist es noch im erlaubten Zeitbereich und robocopy startet – egal wie lange es für das Kopieren benötigen würde.
Damit dies nicht passiert gibt den Parameter „/PF“ (per File).
Damit kontrolliert robocopy nach JEDEM kopierten File, ob es sich noch im erlaubten Zeitbereich befindet oder nicht.

Ist es außerhalb des erlaubten Zeitbereiches, wird das Kopieren angehalten und bei Eintritt in den erlaubten Zeitbereich an der unterbrochenen Stelle wieder fortgeführt.

Klingt schon mal nicht schlecht, hat aber noch immer das Problem, dass ein begonnener Kopiervorgang noch fertig gestellt wird.
Das bedeutet, bei obigen Beispiel: würde eine 40GB große Datei um 5:59h gestartet, wird diese auch noch fertig kopiert, da sie innerhalb der Sperrzeit gestartet wurde.
Es gibt noch ein weiteres Problem.
Würde robocopy am Ende des erlaubten Zeitbereiches stoppen, läuft er dann bei Eintritt in den erlaubten Zeitbereich weiter. Wird aber der Kopiervorgang, z.B.: durch eine Aufgabenplanung, jeden Tag angestoßen, laufen der neue UND der unterbrochene robocopy-Task parallel. Vermutlich würde dann der neue Task irgendwann den Task vom Vortag einholen und dann beide Tasks auf die gleichen Dateien zugreifen – was einen Konflikt erzeugt.

Die bessere Alternative wäre hier, bei der Aufgabenplanung nicht nur die Startzeit anzugeben, sondern ebenfalls auch, wann die Aufgabe beendet werden soll (Option: „Aufgabe beenden, falls Ausführung länger dauert“). Hier darf nicht vergessen werden, auch die Option „Beenden der aktiven Aufgabe erzwingen, falls die Aufforderung nicht beendet wird“ zu aktivieren.
Somit wird der Kopiervorgang definitiv beendet.
Jedoch beginnt er bei einem Neustart wieder von Vorne, womit, wenn der Zeitbereich regelmäßig nicht ausreicht, nicht alle Daten kopiert werden.
Hier empfiehlt es sich mehrere Kopiervorgänge parallel zu starten, z.B.: in Abhängigkeit der Dateigröße.

Angabe von Dateigrößen

Mit „/MIN:Bytes“ wird die minimale, mit „/MAX:Bytes“ die maximale Dateigröße in Bytes angegeben.
Möchte man nur Dateien bis 1GB (1024*1024*1024Bytes) kopieren, so könnte der Befehl so aussehen

Für Dateien Größer 1GB wäre der Befehl

Achtung !
„/MIR“: kopiert auch die komplette Verzeichnisstruktur.
winback3-04
Werden diese Befehle parallel ausgeführt, so lassen sich „große“ Dateien parallel zu den „kleinen“ Dateien kopieren und so könnte der komplette Kopiervorgang evtl. in der vorgegebenen Zeit fertiggestellt werden.
Ein anderer Ansatz wäre, dass sehr große Dateien nur über ein Wochenende kopiert werden und unter Woche unbeachtet bleiben.

Ein weiterer Parameter um die Anzahl der Dateien zu begrenzen, ist das Alter der Dateien.
Besitzt man z.B.: mehrere Datenbank-Dumps auf dem Quell-Laufwerk, benötigt aber nur die neuesten Dumps als Backup, so kann man mit „/MAXAGE:“ das Kopieren auf diese Tage begrenzen (Analog dazu gibt es „/MINAGE:“).
Die Angabe erfolgt als „Anzahl Tage“ oder als Datum (Format JJJJMMTT).
Kopiert nur Dateien, welche maximal 2 Tage alt sind:

Kopiert Dateien, welche gleich oder jünger als das angegeben Datum sind:

Bis jetzt ging es nur um das Kopieren/Synchronisieren von Dateien aus einem Quell- auf ein Ziellaufwerk.
Eine Historie gibt es aber noch nicht, damit geht’s im Teil 4 weiter.