Robocopy
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
- ZWEI
- XCOPY
- MS-DOS-Eingabeaufforderung
- rsync
- Spielzeug synchronisieren
Referenzen (auf Englisch)
- ↑ 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.
- ↑ „Multithreaded-Dateikopien mit Robocopy in Windows 7 durchführen“ .
- ↑ Microsofts Robocopy-Kompromiss .
- ↑ Hässlicher Fehler in Robocopy – Ignorieren der Sicherheit auf Dateiebene .
- ↑ Joshua Hoffman (November 2006). "Utility Spotlight Robocopy-GUI" (html) . TechNet Magazine (Microsoft Corporation und CMP Media, LLC) . Abgerufen am 17. Juli 2008 .
- ↑ Robocopy.exe, Microsoft Windows Server 2003 Resource Kit, Hilfeausgabe bei Ausführung mit /? Befehlszeilenschalter. Vollständige Hilfe mit /??? Befehlszeilenschalter.
- ↑ „Robocopy-Errorlevel-Rückgabecodes“ . Archiviert vom Original am 22. Dezember 2008 . Abgerufen am 4. Juli 2009 .