close

Robocopy

Zur Navigation gehen Zur Suche gehen

robocopy , oder "Robust File Copy", ist einVerzeichnisreplikation , der über die Befehlszeile verfügbar ist . Es war Teil des Windows Resource Kit und wurde als Standardfunktion von Windows Vista und Windows Server 2008 eingeführt .

Funktionen

Robocopy zeichnet sich dadurch aus, dass es die in Windows enthaltenen Befehle (COPY und xcopy ) übertrifft und außerdem:

  • Es kann Netzwerkausfälle tolerieren und mit dem Kopieren fortfahren, wo es aufgehört hat (unvollständige Dateien werden mit dem Datum 01.01.1980 gestempelt und enthalten ein Wiederherstellungsprotokoll, damit Robocopy weiß, wo es weitermachen muss).
  • Sie können erfolgreich Attribute, Eigentümerinformationen, alternative Datenströme (ADS), Auditinformationen und Standarddaten kopieren, ohne dass umständliche Befehlsparameter erforderlich sind.
  • Sie können die NTFS- ACL kopieren (indem Sie den Parameter /COPYALL /SEC hinzufügen) und das Windows NT- "Sicherungsrecht" (/B) geltend machen, sodass ein Administrator ein gesamtes Verzeichnis kopieren kann, einschließlich der Dateien, denen das Lesen verweigert wird der Administrator.
  • Persistenz standardmäßig mit einer programmierbaren Anzahl automatischer Wiederholungen, wenn auf eine Datei nicht zugegriffen werden kann.
  • Es verfügt über einen "Spiegel"-Modus, der die Baumstruktur synchronisiert hält, indem optional Dateien vom Ziel gelöscht werden, wenn sie sich nicht mehr in der Quelle befinden.
  • Es kann große Mengen an Dateien kopieren, was das Dienstprogramm XCOPY nicht tun würde.
  • Es verfügt über eine Fortschrittsanzeige auf der Befehlszeile, die kontinuierlich aktualisiert wird.
  • Sie können Dateien und Ordner mit langen Namen von mehr als 256 Zeichen – bis zu einem theoretischen Maximum von 32.000 – fehlerfrei kopieren. [ 1 ]
  • Unterstützt Multithread-Kopieren (nur Windows 7). [ 2 ]

Insbesondere kann Robocopy keine geöffneten Dateien kopieren, die von anderen Benutzern oder Anwendungen verwendet werden. Der sogenannte „Sicherungsmodus“ ist ein Administratorrecht, das es Robocopy ermöglicht, Berechtigungseinstellungen (insbesondere die in der NTFS- ACL ) für die Sicherungsmission zu überschreiben. Das Windows Volume Shadow Copy-Subsystem ist das einzige, das geöffnete Dateien kopieren kann, während sie verwendet werden. Robocopy implementiert keinen Zugriff auf diesen Dienst, wodurch seine Nützlichkeit als Sicherungsdienstprogramm für verwendete Volumes verringert wird. Sie können jedoch die Dienstprogramme VSHADOWoder DISKSHADOW(in Windows Server 2008 enthalten ) verwenden, um einen Snapshot eines Volumes zu erstellen, das mit Robocopy gesichert werden kann.

Darüber hinaus ist die Originalversion von Robocopy konstruktionsbedingt nicht in der Lage, Sicherheitsattribute von Dateien zu replizieren, deren Berechtigungen sich nach der ersten Replikation geändert haben. [ 3 ] Dieses Verhalten wurde in den Windows 2008- und Vista-Versionen von Robocopy korrigiert. Das bedeutet, dass sich Robocopy auf verschiedenen Plattformen nicht gleich verhält. [ 4 ]

Die Oberfläche

Obwohl Robocopy selbst ein Kommandozeilentool ist, hat Microsoft Technet auch eine Schnittstelle bereitgestellt, die das .net Framework 2.0 erfordert. Es wurde von Derk Benisch, Systemingenieur bei Microsofts MSN-Gruppe, entwickelt. [ 5 ] Diese Schnittstelle enthält Version XP026 von Robocopy (für Vista).

Anwendungsbeispiele

Kopieren Sie den Inhalt eines Verzeichnisses rekursiv von c:\foo nach c:\bar

robocopy C:\foo C:\bar /E

Kopieren Sie den Inhalt eines Verzeichnisses rekursiv (/E) und kopieren Sie alle Informationen der Dateien (/COPYALL, was äquivalent zu /COPY:DATSOU, D=Daten, A=Attribute, T=Datum, S=Sicherheit=ACL von NTFS, O=Owner Information, U=Audit Information), keine Wiederholungen bei gesperrten Dateien (/R:0). Beachten Sie, dass die Verzeichnisdaten nicht zurückgesetzt werden, wenn eine ältere Version als XP026 verwendet wird:

robocopy C:\foo C:\bar /COPYALL /E /R:0

Duplizieren Sie foo in bar, löschen Sie alle Dateien in bar, die sich nicht in foo (/MIR) befinden, kopieren Sie Dateien im neustartbaren Modus (/Z), falls die Netzwerkverbindung unterbrochen wird

robocopy C:\foo \\backupserver\bar /MIR /Z

Ordner kopieren, keine Dateien

Die Syntax von Robocopy unterscheidet sich deutlich von der, die von normalen Kopierbefehlen verwendet wird, da sie nur Ordnernamen akzeptiert, keine Dateien, sowohl auf der Quelle als auch auf dem Ziel. Dateinamen und Platzhalter (z. B. " *.* ") werden als Quelle oder Ziel nicht akzeptiert. Dateien können mithilfe von Filterargumenten ausgewählt oder ausgeschlossen werden, die sich nur auf Dateinamen relativ zu bereits ausgewählten Ordnern beziehen können, da vollständige Pfade nicht akzeptiert werden.

Um beispielsweise die Datei foo.txt aus dem Verzeichnis c:\bar nach c:\baz zu kopieren , würde der folgende Ausdruck verwendet werden

robocopy c:\bar c:\baz foo.txt

Teilliste der Befehlszeilenparameter

Die folgende Liste zeigt die gängigsten Befehlszeilenoptionen für Robocopy [ 6 ]

Allgemeine Optionen

/MIR
Aktiviert den Spiegelungsmodus und löscht alle Dateien im Ziel, die sich nicht mehr in der Quelle befinden (entspricht /E und /PURGE).
/Z
Kopieren Sie Dateien im bootfähigen Modus. „Neustartfähig“ bedeutet, dass Robocopy einen Wiederherstellungsdatensatz in die unvollständige Datei schreibt, falls der Vorgang unterbrochen oder abgebrochen wird, sodass ein zukünftiger Robocopy-Durchlauf dort weitermachen kann, wo er aufgehört hat, anstatt von vorne zu beginnen. Dies ist nützlich für zuverlässige Kopien großer Dateien oder Mengen über instabile Netzwerke wie [Virtual Private Network|VPN] oder das Internet. Eine unvollständige Datei hat die gleiche Größe wie die vollständige Datei und ist in einem 24-Stunden-Zeitraum datiert, beginnend am 01.01.1980 um 0:00 Uhr.
/KOPIERE ALLES
Überprüfen Sie, ob die NTFS-Sicherheit gesichert wurde. Entspricht /COPY:DATSOU, wobei D=Daten, A=Attribute, T=Datum, S=Sicherheit=NTFS-ACL, O=Besitzerinformationen, U=Überwachungsinformationen.
/B
Öffnen Sie die Datei im Sicherungsmodus. Es erlaubt das Öffnen von Dateien ohne Sicherheitseinschränkungen, erfordert aber zusätzliche Rechte in Ursprung und Ziel.
/ZUM BEISPIEL
Neustartfähigen Modus verwenden; Wenn der Zugriff verweigert wird, verwenden Sie den Sicherungsmodus.

Spezialisierte Optionen

/S
Kopiert Unterverzeichnisse, wenn sie nicht leer sind (wie XCOPY).
/UND
Kopiert Unterverzeichnisse, auch wenn sie leer sind (wie XCOPY).
/M
Kopiert Dateien mit dem Archivattribut (wie XCOPY mit der Option /M).
/MOV
Verschieben Sie die Dateien und löschen Sie sie aus der Quelle.
/BEWEGUNG
Löschen Sie Dateien UND Ordner (löschen Sie sie nach dem Kopieren aus der Quelle).
/MON:n
Überwachen und starten Sie die Kopie nach n Änderungen (und TÜV-Minuten).
/MOT:n
Legen Sie das Mindestüberwachungsintervall (n Minuten) fest, bevor Sie eine weitere Kopie starten.
/XA:Attribute
Schließen Sie Dateien mit einem der angegebenen Attribute aus. Beispiel: /XA:H kopiert keine Dateien mit dem versteckten Attribut.
/XF-Name
Schließt Dateien aus, die im Namen angegeben sind . Platzhalter werden akzeptiert. Beispiel: /XF *.bak kopiert keine Dateien mit der Erweiterung *.bak.
/XD-Name
Verzeichnisse ausschließen , die irgendwo im Pfad im Namen angegeben sind . Funktioniert mit Platzhaltern (z. B. /XD BKUP* kopiert keine Verzeichnisse, die mit "BKUP" beginnen, egal wo sie sich im Baum befinden).
/XC
Schließt Dateien mit Änderungen aus .
/XN
Neue Dateien ausschließen . _
/XO
Schließen Sie ältere Dateien aus
/XX
Schließt zusätzliche Dateien und Verzeichnisse aus, die sich möglicherweise im Ziel, aber nicht in der Quelle befinden.
/XL
Einzelne Dateien und Verzeichnisse ausschließen ; Es kann am Ursprung sein, aber nicht am Ziel.
/WENN
Fügen Sie die folgenden Dateien hinzu.
/ES
Beinhaltet die gleichen Dateien .
/ARTIKEL
Beinhaltet optimierte Dateien (z. B. wenn einige Dateiattribute haben und andere schreibgeschützt).
/XJ
Symbolische Links ausschließen _ _ Beim Kopieren von Benutzerkonten an einen anderen Ort in Windows Vista ist es wichtig, symbolische Verknüpfungen auszuschließen. Der Link in „\Users\...\AppData\local“ mit dem Namen „Anwendungsdaten“ verweist auf den übergeordneten Link und erzeugt eine Schleife, die Robocopy zum Absturz bringen kann. Wenn ein Link auf einen Quelldatenträger verweist, der mit /MIR (oder /E und /PURGE) auf einen anderen Zieldatenträger kopiert wird, und der Link kopiert wird, verweist er außerdem auf den Quelldatenträger, was zu den Inhalten der Quellfestplatte.
/R:n
Teilt Robocopy die 'n' Wiederholungen mit, bevor es mit einem Fehler beendet wird (standardmäßig 1 Million).
/IPG:n
Teilt Robocopy die Pause in 'n' Millisekunden zwischen Paketen bei der Netzwerkübertragung mit. Nützlich, um bei langsamen Verbindungen Bandbreite zu sparen.
/L
Simu L , um die Kopie zu erstellen, ohne es zu tun, um das Ergebnis einer Konfiguration von der Befehlszeile aus zu testen.
/W:n
Wartezeit zwischen Wiederholungen (standardmäßig 30 Sekunden).
/SÄUBERN
Löschen Sie die Dateien, die nicht im Ursprung sind.
/DST
Ausgleich für Zeitunterschiede.
/DCOPY:T
Daten von Verzeichnissen kopieren. ### Verfügbar in XP026 (WinXP) & XP027 und höher (Vista)
/MAXAGE:n
MAX. Dateilebensdauer - schließt Dateien aus, die älter als n Tage/Datum sind.
/MINAGE:n
Mindestlebensdauer von Dateien - schließt Dateien mit weniger als n Tagen/Datum aus.
(Wenn n < 1900, dann n = Anzahl der Tage, sonst n = Datum JJJJMMTT ).
/MT:n
Multithread-Kopie (nur Windows 7). Der Wert von n reicht von 1 bis 128 (standardmäßig 8)
/FFT
Angenommen, FAT-Dateizeiten (2-Sekunden-Granularität für Datum/Uhrzeit).

Protokollierungsoptionen

/NFL
Zeichnen Sie keine Dateinamen auf.
/NDL
Registrieren Sie keine Verzeichnisnamen.
/NS
Dateigrößen nicht protokollieren.
/NC
Registrieren Sie keine Dateiklassen.
/X
Alle zusätzlichen Dateien auflisten.
/V
Extrahieren Sie detaillierte Informationen, wobei die Dateien ausgeschlossen sind.
/TS
Geben Sie die Daten der Quelldateien an.
/PF
Schließen Sie vollständige Pfade ein.
/NP
% kopiert nicht anzeigen.
/ETA
Voraussichtliche Ankunftszeit anzeigen.
/LOG:Datei.txt
Ersetzen Sie file.txt durch den Status der Aufgabe.
/LOG+:Datei.txt
Fügen Sie den Status der Aufgabe zu file.txt hinzu.
/TEE
Ausgabe in das Konsolenfenster sowie in die Protokolldatei.
/NJH
Kein Aufgabenkopf.
/NJS
Keine Aufgabenzusammenfassung.

(Siehe vollständige Liste in [1] hier)

Bekannte Probleme

Bis XP026

  • Version XP026 gibt keine ERRORLEVEL-Codes zurück, wenn zusätzliche Verzeichnisse/Dateien vorhanden sind.
  • Die neue Option in Vista (XP027) /EFSRAW: Kopieren Sie verschlüsselte Dateien im EFS RAW-Modus; nicht verfügbar für XP (XP026).
  • Robocopy kopiert keine Daten aus Quellordnern. Stattdessen wird beim Erstellen neuer das aktuelle Datum verwendet. Wenn Sie möchten, dass beide Kopien identisch sind, müssen Sie eine andere Backup-Lösung verwenden. Adressiert in Version XP026 und der Vista-Version (Parameter /DCOPY:T)
  • Kurze Dateinamen werden nicht zuverlässig kopiert.
  • Das Kopieren von Dateien im wiederstartbaren Modus ist aufgrund des erforderlichen Verwaltungsaufwands viel langsamer (etwa 6-mal länger im Netzwerk) als im normalen oder Sicherungsmodus.
  • Obwohl die Version XP026 bereits komprimierte Dateien kopieren kann, tritt eine starke Fragmentierung auf .
  • Der Sicherungsmodus kann die explizite Verweigerung der NTFS-ACL-Berechtigung nicht außer Kraft setzen, wenn das Kopieren kein eigenes Objekt ist. (Fehlermeldung: FEHLER 5 (0x00000005) NTFS-Sicherung wird in Zielverzeichnis kopiert. Zugriff verweigert.) Dieser Fehler kann behoben werden, indem die Daten einfach mit dieser Optionseinstellung /COPY:DT anstelle der Option /COPYALL kopiert werden
  • Robocopy behält keine festen Links bei .
  • Robocopy kann nicht über FTP-Links kopieren.

ErrorLevel-Rückgabecodes

Der Rückkehrcode von Robocopy ist ein Bitmap, wie man sehen kann in: [ 7 ]

  • 0×16 Schwerwiegender Fehler. Robocopy hat keine Dateien kopiert. Es liegt an einem Verwendungsfehler oder unzureichenden Zugriffsrechten an der Quelle oder am Ziel.
  • 0×08 Einige Dateien oder Ordner wurden nicht kopiert (Es gab Lesefehler und das Wiederholungslimit wurde überschritten). Suchen Sie später nach diesen Fehlern.
  • 0×04 Einige Datei- und Dateinamen-Nichtübereinstimmungen wurden erkannt. Untersuchen Sie das Ausgabeprotokoll. Eine Verwaltung wird wahrscheinlich erforderlich sein.
  • 0×02 Zusätzliche Dateien/Verzeichnisse wurden erkannt. Untersuchen Sie das Ausgabeprotokoll. Management wird benötigt.
  • 0×01 Eine oder mehrere Dateien wurden erfolgreich kopiert (d. h. neue Dateien sind angekommen).
  • 0×00 Kein Fehler, nichts kopiert. Start und Ziel sind vollständig synchronisiert.

Sie können diese Codes wie folgt für die Verwendung in Batchdateien verwenden:

if  errorlevel  16  echo ***FATAL ERROR*** &  goto  : eof 
if  errorlevel  8  echo **COPYING FAILED** &  goto  : eof 
if  errorlevel  4  echo *MISCREPANCY* &  goto  : eof 
if  errorlevel  2  echo EXTRA FILES &  goto  : eof 
if  errorlevel  1  echo Kopieren erfolgreich &  goto  : eof 
if  errorlevel  0  echo –keine Änderung– &  goto  : eof

Alternativ können sie auch verwendet werden, um nähere Informationen zu geben:

if  errorlevel  16  echo ***FATAL ERROR*** &  goto  : eof 
if  errorlevel  15  echo FAIL MISM XTRA COPY &  goto  : eof 
if  errorlevel  14  echo FAIL MISM XTRA &  goto  : eof 
if  errorlevel  13  echo FAIL MISM COPY &  goto  : eof 
if  errorlevel  12  echo FAIL MISM &  goto  : eof 
if  errorlevel  11  echo FAIL XTRA COPY &  goto  : eof 
if  errorlevel  10  echo FAIL XTRA &  goto  : eof 
if  errorlevel  9  echo FAIL COPY &  goto  : eof 
if  errorlevel  8  echo FAIL &  goto  : eof 
if  errorlevel  7  echo MISM XTRA COPY &  goto  : eof 
if  errorlevel  6  echo MISM XTRA &  goto  : eof 
if  errorlevel  5  echo MISM COPY &  goto  : eof 
if  errorlevel  4  echo MISM &  goto  : eof 
if  errorlevel  3  echo XTRA COPY &  goto  : eof 
if  errorlevel  2  echo XTRA &  goto  : eof 
if  errorlevel  1  echo COPY &  goto  : eof 
if  errorlevel  0  echo –keine Änderung– &  goto  : eof

Versionen

Hinweis: Verschiedene Versionen von Robocopy zeigen die Versionsnummer nicht an, wenn „Robocopy /?“ ausgeführt wird. auf der Kommandozeile.

Produktversion Dateiversion Jahr Quelle Sonstiges
1,70 - 1997 Windows NT-Ressourcenkit
1.71 4.0.1.71 1997 Windows NT-Ressourcenkit
1,95 4.0.1.95 1999 Windows 2000-Ressourcenkit
1,96 4.0.1.96 1999 Windows 2000-Ressourcenkit © 1995-1997
XP010 5.1.1.1010 2003 Windows 2003 -Ressourcenkit
XP026 5.1.2600.26 2005 Heruntergeladen mit Robocopy GUI v.3.1.2
XP027 5.1.10.1027 2008 Gebündelt mit Windows Vista , Server 2008, Windows 7 © 1995-2004
6.1 6.1.7601 2009 KB2639043 © 2009
6.2 6.2.9200 2012 Gebündelt mit Windows 8 © 2012
6.3 6.3.9600 2013 Gebündelt mit Windows 8.1 © 2013
10.0 10.0.10240 2015 Gebündelt mit Windows 10 © 2015

Siehe auch

Referenzen (auf Englisch)

  1. http://windowsitpro.com/Windows/Articles/ArticleID/44324/pg/2/2.html Archiviert am 5. November 2005 auf der Wayback Machine Robocopy XP010 FAQ Nutzen Sie leistungsstarke neue Switch-Optionen.
  2. „Multithreaded-Dateikopien mit Robocopy in Windows 7 durchführen“ . 
  3. Microsofts Robocopy-Kompromiss .
  4. Hässlicher Fehler in Robocopy – Ignorieren der Sicherheit auf Dateiebene .
  5. Joshua Hoffman (November 2006). "Utility Spotlight Robocopy-GUI" (html) . TechNet Magazine (Microsoft Corporation und CMP Media, LLC) . Abgerufen am 17. Juli 2008 . 
  6. Robocopy.exe, Microsoft Windows Server 2003 Resource Kit, Hilfeausgabe bei Ausführung mit /? Befehlszeilenschalter. Vollständige Hilfe mit /??? Befehlszeilenschalter.
  7. „Robocopy-Errorlevel-Rückgabecodes“ . Archiviert vom Original am 22. Dezember 2008 . Abgerufen am 4. Juli 2009 . 

Externe Links