Robocopy: nur Fehler protokollieren

Robocopy ist unbestritten ein hervorragendes Tool zum Kopieren von Daten. Das Robocopy Logfile kann aber je nach Datenmenge sehr groß und unhandlich werden. Interessant ist dabei meist nur eine Liste der Fehler, denn dort muss vor dem nächsten Transfer nachgebessert werden.

Nur das Wesentliche

Dazu müssen dem Kopierbefehl folgende Parameter hinzugefügt werden:

/V /NDL /NFL

Die Parameter bedeuten übersetzt:

/V : Verbose output

/NFL : no file list

/NDL : no directory list

Robocopy Error 5 – Access denied

Bei der Spiegelung eines Volumes von Fileserver-A nach Fileserver-B mit Robocopy trat ein erstaunliches Phänomen auf. Der erste Kopiervorgang verlief problemlos.

robocopy \\Fileserver-A\Share1 d:\ /MIR /SEC /DCOPY:T /R:1 /W:1

Nun sollte einige Zeit später der zweite Durchgang die Veränderungen kopieren. Erneut führte ich den Befehl oben aus und wurde mit folgender Fehlermeldung konfrontiert:

ERROR 5 (0x00000005) Copying NTFS Security to Destination Directory <directoryname> Access is denied

Es kann sein, daß das Konto, welches Robocopy ausführt, keine Schreibrechte auf die Datei oder den Ordner hat. Eine Aktualisierung ist somit nicht möglich und erzeugt den Fehler. Hätte ich die Daten ohne ACL kopiert, wäre es kein Problem.

Abhilfe

Es ist eine gute Methode, zunächst nur die Daten ohne Sicherheitsinformationen zu kopieren. Diesen Befehl iteriert man, bis die Daten ganz aktuell sind und nicht mehr durch User verändert werden können.

robocopy <SOURCE> <TARGET> /MIR /DCOPY:T /R:1 /W:1

Im letzten Durchgang überträgt man die Rechte auf Dateien und Ordner.

robocopy <SOURCE> <TARGET> /MIR /SEC /SECFIX /DCOPY:T /R:1 /W:1

Links