robocopy: einfacher/kostenloser BackUP-Script (Anwendungsbeispiel)

Allgemeines:

Die Umsetzung dieses Artikels erfordert Grundkenntnisse der "Batch-Programmierung". Robocopy ist ein Batch-Befehl, der komplexe Kopiervorgänge vollziehen kann, weshalb er sich sehr gut für BackUP-Lösungen eignet. Ab Windows Vista standardmäßig enthalten, ansonsten aus dem Windows Resource Kit nachinstallierbar.


Englische Version der allgemeinen Hilfe hier.

Start:

Start -> (Ausführen) -> "cmd" -> OK

Die Hilfe aus der Konsole
-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robustes Dateikopieren für Windows
-------------------------------------------------------------------------------
  Gestartet: Mittwoch, 6. März 2019 23:38:57
             Syntax :: ROBOCOPY Quelle Ziel [Datei [Datei]...] [Optionen]
             Quelle :: Quellverzeichnis (Laufwerk:\Pfad oder
                       \\Server\Freigabe\Pfad)
               Ziel :: Zielverzeichnis (Laufwerk:\Pfad oder
                       \\Server\Freigabe\Pfad)
              Datei :: Zu kopierende Dateien (Namen/Platzhalter: Standard
                       ist "*.*")
::
:: Kopieroptionen:
::
                 /S :: Kopiert Unterverzeichnisse, jedoch keine leeren
                       Unterverzeichnisse.
                 /E :: Kopiert Unterverzeichnisse, einschließlich leerer
                       Unterverzeichnisse.
             /LEV:n :: Kopiert nur die obersten Ebenen der
                       Quellverzeichnisstruktur.
                 /Z :: Kopiert Dateien im Neustartmodus.
                 /B :: Kopiert Dateien im Sicherungsmodus.
                /ZB :: Verwendet den Neustartmodus. Im Fall einer
                       Zugriffsverweigerung wird der Sicherungsmodus verwendet.
                 /J :: kopieren mit ungepuffertem E/A (empfohlen für sehr große
                       Dateien).
            /EFSRAW :: Kopiert alle verschlüsselten Dateien im EFS RAW-Modus.
    /COPY:copyflags :: Gibt an, welche Inhalte für Dateien kopiert werden
                       sollen (der Standard ist "/COPY:DAT").
                       (Kopierflags : D=Daten, A=Attribute, T=Zeitstempel).
                       (S=Sicherheit=NTFS-ACLs, O=Besitzerinformationen,
                       U=Überwachungsinformationen).
               /SEC :: Kopiert Dateien mit Sicherheitsinformationen
                       (entspricht "/COPY:DATS").
           /COPYALL :: Kopiert alle Dateiinformationen
                       (entspricht "/COPY:DATSOU").
            /NOCOPY :: Kopiert keine Dateiinformationen
                       (hilfreich in Verbindung mit "/PURGE").
            /SECFIX :: Korrigiert die Dateisicherheit in allen Dateien, auch
                       in ausgelassenen Dateien.
            /TIMFIX :: Korrigiert die Uhrzeitangaben für Dateien in allen
                       Dateien, auch in ausgelassenen Dateien.
             /PURGE :: Löscht Zieldateien/-verzeichnisse, die in der Quelle
                       nicht mehr vorhanden sind.
               /MIR :: Spiegelt eine Verzeichnisstruktur
                       (Entspricht "/E" mit "/PURGE").
               /MOV :: Verschiebt Dateien
                       (löscht Dateien nach dem Kopieren an der Quelle).
              /MOVE :: Verschiebt Dateien UND Verzeichnisse
                       (löscht sie nach dem Kopieren an der Quelle).
     /A+:[RASHCNET] :: Fügt die vorhandenen Attribute den kopierten Dateien
                       hinzu.
     /A-:[RASHCNET] :: Entfernt die vorhandenen Attribute aus kopierten
                       Dateien.
            /CREATE :: Erstellt eine Verzeichnisstruktur und nur Dateien mit
                       einer Länge von Null.
               /FAT :: Erstellt Zieldateien nur unter Verwendung von
                       8.3 FAT-Dateinamen.
               /256 :: Deaktiviert die Unterstützung für sehr lange Pfade
                       (> 256 Zeichen).
             /MON:n :: Überwacht die Quelle. Wird erneut ausgeführt, wenn mehr
                       als n Änderungen gefunden werden.
             /MOT:m :: Überwacht die Quelle. Wird bei einer Änderung erneut
                       ausgeführt in m Minuten.
      /RH:hhmm-hhmm :: Ausführungsstunden - Steuert, wann neue Kopiervorgänge
                       gestartet werden können.
                /PF :: Überprüft die Ausführungsstunden pro Datei
                       (nicht pro Durchgang).
             /IPG:n :: Abstand zwischen Paketen (ms), um bei langsamen
                       Verbindungen Bandbreite freizugeben.
                /SL :: Kopiert symbolische Verknüpfungen gegenüber dem Ziel.
            /MT[:n] :: Multithreadkopien mit n Threads erstellen
                       (Standardwert: "8").
                       n muss zwischen 1 und 128 (einschließlich) liegen.
                       Die Option ist nicht mit "/IPG" und "/EFSRAW" kompatibel.
                       Die Ausgabe kann mit "/LOG" umgeleitet werden, um eine
                       bessere Leistung zu erzielen.
/DCOPY:Kopierflag[s] :: zu kopierende Elemente für Verzeichnisse
                        (Standard: "/DCOPY:DA").
                       (Kopierflags: D=Daten, A=Attribute, T=Zeitstempel).
           /NODCOPY :: kopiert keine Verzeichnisinformationen
                       (standardmäßig wird "/DCOPY:DA" ausgeführt).
         /NOOFFLOAD :: Dateien werden ohne den Windows-Kopieabladungs-
                       mechanismus kopiert.
::
:: Dateiauswahloptionen:
::
                 /A :: Kopiert nur Dateien mit dem "Archive"-Attribut.
                 /M :: Kopiert nur Dateien mit dem "Archive"-Attribut und setzt
                       das Attribut zurück.
     /IA:[RASHCNETO]:: Schließt nur Dateien ein, bei denen eines der Attribute
                       festgelegt ist.
     /XA:[RASHCNETO]:: Schließt Dateien aus, bei denen eines der Attribute
                       festgelegt ist.
    /XF Datei[Datei]:: Schließt Dateien aus, die mit den angegebenen
                       Namen/Pfaden/Platzhaltern übereinstimmen.
    /XD Verz.[Verz.]:: Schließt Verzeichnisse aus, die mit den angegebenen
                       Namen/Pfaden übereinstimmen.
                /XC :: Schließt geänderte Dateien aus.
                /XN :: Schließt neuere Dateien aus.
                /XO :: Schließt ältere Dateien aus.
                /XX :: Schließt zusätzliche Dateien und Verzeichnisse aus.
                /XL :: Schließt einsame Dateien und Verzeichnisse aus.
                /IS :: Schließt identische Dateien ein.
                /IT :: Schließt optimierte Dateien ein.
             /MAX:n :: Maximale Dateigröße - schließt Dateien aus, die größer
                       als n Bytes sind.
             /MIN:n :: Minimale Dateigröße - schließt Dateien aus, die kleiner
                       als n Bytes sind.
          /MAXAGE:n :: Maximales Dateialter - schließt Dateien aus, die älter
                       als n Tage/Datum sind.
          /MINAGE:n :: Minimales Dateialter - schließt Dateien aus, die neuer
                       als n Tage/Datum sind.
          /MAXLAD:n :: Maximales Datum des letztes Zugriffs - schließt Dateien
                       aus, die seit n nicht verwendet wurden.
          /MINLAD:n :: Minimales Datum des letztes Zugriffs - schließt Dateien
                       aus, die seit n verwendet wurden.
                       (Wenn n < 1900, dann ist n = n Tage, andernfalls ist
                       n = Datum im Format JJJJMMTT).
                /XJ :: Schließt Abzweigungspunkte und symbolische Verknüpfungen aus (werden normalerweise standardmäßig eingeschlossen).
               /FFT :: Geht von FAT-Uhrzeitangaben für Dateien aus
                       (Granularität von zwei Sekunden).
               /DST :: Kompensiert Zeitunterschiede von einer Stunden aufgrund
                       der Sommerzeit.
               /XJD :: Schließt Abzweigungspunkte und symbolische Verknüpfungen für Verzeichnisse aus.
               /XJF :: Schließt symbolische Verknüpfungen für Dateien aus.
::
:: Wiederholungsoptionen:
::
               /R:n :: Anzahl von Wiederholungsversuchen bei fehlerhaften
                       Kopiervorgängen. Der Standardwert ist 1 Million.
               /W:n :: Wartezeit zwischen Wiederholungsversuchen.
                       Der Standardwert ist 30 Sekunden.
               /REG :: Speichert "/R:n" und "/W:n" in der Registrierung als
                       Standardeinstellungen.
               /TBD :: Wartet darauf, dass Freigabenamen definiert werden
                       (Wiederholungsfehler 67).
::
:: Protokollierungsoptionen :
::
                 /L :: Listet nur auf. Es werden keine Kopiervorgänge
                       ausgeführt, Zeitstempel erstellt oder Dateien gelöscht.
                 /X :: Meldet alle zusätzlichen Dateien, nicht nur die
                       ausgewählten Dateien.
                 /V :: Erstellt eine ausführliche Ausgabe mit ausgelassenen
                       Dateien.
                /TS :: Schließt Zeitstempel von Quelldateien in die Ausgabe ein.
                /FP :: Schließt den vollständigen Pfadnamen von Dateien in
                       die Ausgabe ein.
             /BYTES :: Gibt Größen in Bytes aus.
                /NS :: Keine Größe - Dateigrößen werden nicht protokolliert.
                /NC :: Keine Klasse - Dateiklassen werden nicht protokolliert.
               /NFL :: Keine Dateiliste - Dateinamen werden nicht protokolliert.
               /NDL :: Keine Verzeichnisliste - Verzeichnisnamen werden nicht
                       protokolliert.
                /NP :: Kein Status - der Prozentsatz kopierter Elemente wird
                       nicht angezeigt.
               /ETA :: Zeigt die ungefähre Empfangszeit der kopierten Dateien
                       an.
         /LOG:Datei :: Gibt den Status der Protokolldatei aus (überschreibt das
                       vorhandene Protokoll).
        /LOG+:Datei :: Gibt den Status der Protokolldatei aus
                       (wird an das vorhandene Protokoll angefügt).
      /UNILOG:Datei :: Gibt den Status der Protokolldatei als UNICODE aus
                       (überschreibt das vorhandene Protokoll).
     /UNILOG+:Datei :: Gibt den Status der Protokolldatei als UNICODE aus
                       (wird an das vorhandene Protokoll angefügt).
               /TEE :: Gibt Daten in das Konsolenfenster und die Protokolldatei
                       aus.
               /NJH :: Kein Auftragsheader.
               /NJS :: Keine Auftragszusammenfassung.
           /UNICODE :: Gibt den Status als UNICODE aus.
::
:: Auftragsoptionen:
::
  /JOB:Auftragsname :: Übernimmt Parameter aus der angegebenen Auftragsdatei.
 /SAVE:Auftragsname :: Speichert Parameter in der angegebenen Auftragsdatei.
              /QUIT :: Beendet den Vorgang nach der Verarbeitung
                       der Befehlszeile (zum Anzeigen von Parametern).
              /NOSD :: Es ist kein Quellverzeichnis angegeben.
              /NODD :: Es ist kein Zielverzeichnis angegeben.
                /IF :: Schließt die folgenden Dateien ein.
::
:: Hinweise:
::
       Bei der Verwendung von /PURGE oder /MIR im Stammverzeichnis des Volumes
       wurde der angeforderte Vorgang von Robocopy zuvor auch auf Dateien innerhalb
       des Verzeichnisses mit Systemvolumeinformationen angewendet.
       Dies ist nicht länger der Fall. Falls angegeben, überspringt Robocopy Dateien
       oder Verzeichnisse mit diesem Namen im obersten Quell- und Zielverzeichnis des Kopiervorgangs.


Beispiel für einen inkrementellen BackUP:

Gesichert werden sollen jedes Mal die Daten, die seit dem letzten BackUP ge-/verändert wurden und zwar inkrementell in separaten Ordnern, benannt nach Datum und Uhrzeit:

@echo off
chcp 1252
echo Drücke um den BackUP-Vorgang zu starten
pause
robocopy "%homepath%\Documents" "D:\BackUP\%date:~6,4%.%date:~3,2%.%date:~0,2%\%time::=.%" /s /m /r:1 /w:3 /xf desktop.ini /xj
pause
exit


Erklärung:

chcp 1252: Dieser Code ist nötig, um die deutschen Umlaute ausgeben zu können
%homepath%: Der Pfad des aktuellen Benutzers
%date%: Gibt das aktuelle Datum an
%time%: Gibt die aktuelle Zeit an. Somit können mehrere BackUPs am selben Tag durchgeführt werden. Die Stelle ::=. wandelt die Doppelpunkte in einfachen Punkten um. Das ist deshalb nötig, weil Dateien/Ordner keine Doppelpunkte im Namen enthalten dürfen.
/m: setzt das Archivbit zurück, um das inkrementelle BackUP zu ermöglichen.
Der Hintergrund: Sobald eine Datei neu erstellt, umbenannt, verschoben oder inhaltlich verändert wird, wird sie zum Archivieren markiert (in den Eigenschaften: "Datei/Ordner kann archiviert werden").

Kommentare

Beliebte Posts