Robocopy kopieren / synchronisieren und Log erstellen mit aktuellem Datum

Robocopy kopieren / synchronisieren und Log erstellen mit aktuellem Datum

Hallo zusammen,

immer wieder kommt es vor, dass zwei oder mehr Ordner synchronisiert werden sollen. Teilweise bei Fileserver Migrationen etc.

Hierfür gibt es ein Tool, welches Microsoft ab Windows Vista / Windows Server 2008 standardmäßig bereitstellt. Für alle älteren Versionen von Windows gibt es dieses als „Windows Ressource Kit“ herunterzuladen. http://www.microsoft.com/en-us/download/details.aspx?id=17657

Auf den Rechern ab Windows Vista und später kann dieses Tool über die Powershell oder die normale CMD Konsole aufgerufen werden.

Dazu WindowsTaste + R drücken und in das „Ausführen“ Feld  (im Englischen RUN) CMD eingeben

nun erscheint die schwarze Konsole

01-cmd

Nun kann Robocopy eingegeben werden und die wichtigsten Optionen für diese EXE werden angezeigt.

Hier das Ergebnis:

02-robocopy

Man kann sehen, dass Robocopy immer nach dem gleichen Muster funktioniert nämlich die robocopy.exe aufrufen (.exe muss nicht dranstehen) danach kommt die Quelle (also der Ordner der kopiert werden soll), dann das Ziel ( also der Zielordner)  und dann die Optionen/ Schalter (was soll Robocopy machen)

mit dem Befehl robocopy /? können alle Optionen angezeigt werden. Eine Übersicht findet sich auch auf der Technet Website: http://technet.microsoft.com/de-de/library/cc733145(v=ws.10).aspx

Um einfach zu beginnen kann man folgendes in die CMD eintippen

robocopy  C:\Users\%username% D:\Benutzerdaten /mir

Wenn eine D Partition oder eine Festplatte vorhanden ist, spiegelt Robocopy nun euren angemeldeten Benutzer auf die D Partition (%username% ist eine Variable des Systems)

Diesen Befehl kann man nach Belieben erweitern.

Um zum Beispiel Dokumente auf meine externe NAS (Laufwerk Y:) zu sichern habe ich folgendes Script gemacht.

echo@off
robocopy C:\Users\%username%\Documents\aktuelle-Dokumente Y:\aktuelle-Dokumente /mir /R:2 /W:3 /LOG+:"Y:\Sicherungslogs\log-%date:~0,2%-%date:~3,2%-%date:~6,4%-%time:~0,2%-%time:~3,2%-%time:~6,2%.log" /TEE /NDL
pause

/R:2 = zweimaliges Versuchen bei Zugriffsproblemen

/W:3= Warte zwischen den Wiederholungen 3 Sekunden

/LOG+: = Schreibe ein Logfile in den vorgegebenen Pfad

/TEE = Anzeigen am Bildschirm (wird nur benötigt wenn ein ein Log geschrieben wird, da man sonst den Fortschritt nicht sehen kann)

/NDL = keine Verzeichnisse in die LogDatei eintragen (dient der Übersicht)

/XD = Verzeichnis auslassen

/XF =Datei auslassen

Nun erstellt mir das Robocopy eine Log Datei die fortlaufend nach dem Datum der Ausführung benannt ist

03-logs

Natürlich ist Robocopy auch batchfähig und auch dafür gedacht. Es gibt noch sehr viel mehr Funktionen, einfach mal anschauen.

Helfe auch gerne bei Problemlösungen.

Viel Spaß beim nachbauen und selber testen. Ich freue mich über Kommentare.

Zusatz:  Hier noch eine Batchdatei, die zuerst einen Ordner mit dem aktuellen Datum erstellt und dann einen beliebigen Ordner hineinsichert

@echo off
echo ########Sicherung ##############
set SICHERUNGSORDNER="C:\temp-Backups\%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%-%time:~0,2%-%time:~3,2%-%time:~6,2%-Backup"
echo Erstelle Sicherungsverzeichnis %SICHERUNGSORDNER%
mkdir %SICHERUNGSORDNER%
robocopy "C:\XXXXXXXXXX\XXXX" %SICHERUNGSORDNER% /mir /R:2 /W:3 /LOG+:"C:\log\%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%-%time:~0,2%-%time:~3,2%-%time:~6,2%.log" /TEE /NDL

Update 13.11.2018

Da immer wieder die Frage bezüglich NTFS Berechtigungen oder Zeitstempel aufkommt, hier noch weitere Parameter. Standardwert ist /COPY:DAT (Daten,Attribute,Zeitstempel)

/COPYALL (Kopiert Zeitstempel, NTFS Berechtigungen, Attribute)

/SEC (= /COPY:DATS Kopiert Daten, Zeitstempel und Sicherheitsberechtigungen)

/DCOPY:T (Kopiert Ordner Zeitstempel)

/TIMFIX (Übernimmt nur Zeitstempel von Quelle auf Ziel)

HINWEIS: der Code für das Datum funktioniert nur in BATCH Files, wird robocopy innerhalb einer PowerShell Sitzung angewendet bricht diese mit einem Fehler ab. 

Lest auch meinen Artikel zur automatischen Erstellung von Robocopy Jobs bei einer Fileserver Migration

Print Friendly, PDF & Email
  • Was this Helpful ?
  • yes   no

5 thoughts on “Robocopy kopieren / synchronisieren und Log erstellen mit aktuellem Datum

  1. Avatar
    Oli

    Hallo,
    ich bin dringend auf der Suche nach einer Lösung für folgendes Problem:

    Bisher habe ich eine einfache Batch-Datei zur Datenübertragung mit xcopy gemacht. Ich habe einen Quellordner an dem ich täglich arbeite. Am Ende des Arbeitstages will ich mithilfe meiner Batch-Datei alle geänderten und neuen Dateien auf mein Ziellaufwerk übertragen. Mit xcopy war das danke des Befehls „/d“ (Kopiert alle Quelldateien, die neuer sind als die im Ziel befindlichen Dateien) eine einfache Lösung. Leider stößt der Ordner inzwischen an die 255-Zeichen-Grenze, weshalb ich auf robocopy umsteigen muss. Ich finde aber keinen äquivalenten Befehl vom Umfang „/d“, der mir ermöglicht ohne weitere Datum-Eingabe ein wachsendes Verzeichnis zu pflegen..

    Können Sie mir weiterhelfen?

    Liebe Grüße
    Oli

    1. A.K.

      Hi,
      naja so ganz verstehe ich die Frage nicht. robocopy mit dem Parameter /mir spiegelt ein Verzeichnis. Wenn es die entsprechenden Ordner respektive Dateien schon gibt, vergleicht es und überschreibt die Dateien auf dem Ziel Ordner mit den neuen aus dem Quellordner. Somit eine inkementelle Sicherung. Mit Robocopy werden keine Datumangabe benötigt.
      Wenn es darum geht Versionsstände aufzuheben, dann könnte zuerst ein Ordner mit dem aktuellen Datum erstellt werden und dann dort jeweils eine Vollsicherung gemacht werden (ich glaube aber das war nicht die Frage)?
      Frage beantwortet? Ansonsten gerne nochmals schreiben.
      Viele Grüße an den Bodensee.
      Alexander

    2. Avatar
      Oliver

      Ich nehme für ähnliche Szenarien robocopy /E
      Bei /MIR besteht die Gefahr, dass eine versehentlich in der Quelle gelöschte Datei auch gleich im Backup-Ziel gelöscht wird. Somit etwas „riskant“ für eine tägl. inkrementelle Sicherung.

      1. A.K.

        Ja das ist vollkommen richtig, für dieses Szenario.

        Viele Grüße

  2. Avatar
    Klaus

    Hi Alex und Verena
    danke für die Hilfe.

    Gruß Klaus

Leave a Reply

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