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.
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
Kommentar veröffentlichen