ROBOCOPY-Befehl zum Ausführen einer Teilsicherung


31

Ich bin überwältigt von der ROBOCOPY-Dokumentation. Ich möchte eine Teilsicherung meiner lokalen Dateien auf dem Netzlaufwerk (M) durchführen. Ich möchte, dass es so schnell wie möglich ausgeführt wird, ohne Protokolldatei und mit so wenig Text wie möglich auf dem Bildschirm. Meine Dateien befinden sich alle irgendwo in einem Ordner (MyFolder) mit vielen verschachtelten Unterordnern. Mit "inkrementell" meine ich "nur kopieren, was neu oder geändert ist". Ich möchte keine historischen Dateien im Ziel löschen, aber wenn ich eine Datei geändert habe, möchte ich nur die neuere Version. Und wenn ich eine Datei nicht geändert habe, möchte ich sie nicht über die vorhandene gesicherte Datei kopieren. Ist unten richtig? (Ausführen von Win7 Enterprise.)

robocopy C:\MyFolder M:\MyFolder /z /np /xo /e

Bitte, keine Vorschläge für irgendetwas anderes als eine Robokopie. Ich darf nichts installieren. Und ich kümmere mich nicht um Sicherheitssachen. Ich habe Leute dafür (ob ich sie will oder nicht). ;-)


1
Sie benötigen die Option / s oder / e, um Unterverzeichnisse zu kopieren.
David Marshall

@ David Marshall: Hoppla. Das wusste ich eigentlich. Hinzugefügt. Also, bin ich jetzt gut?
dmm

Ja. Ich habe etwas Ähnliches benutzt.
David Marshall

Testen Sie es jetzt. Auf dem Bildschirm wird immer noch ein paar Dinge geschrieben. Wie werde ich es in zukünftigen Läufen los?
dmm

3
Eine Option, die hinsichtlich der Leistung einen großen Unterschied machen kann, sind Multithread-Übertragungen. /MT[:N] Ich habe eine 4-Kern-CPU, also verwende ich normalerweise etwas im Bereich von 8-16 für meine Anzahl von Threads. Ich rechne mit 2-4 Threads pro Kern. Sie sollten auf jeden Fall mit unterschiedlichen Werten auf Ihrer Hardware testen. Multithreaded hilft am besten, wenn Sie viele kleine Dateien haben. Wenn Sie eine kleine Anzahl großer Dateien haben, hilft das bei weitem nicht so viel.
Zoredache

Antworten:


40

Ich verwende seit einigen Jahren erfolgreich eine Variante des folgenden Skripts:

robocopy C:\source M:\destination /MIR /FFT /R:3 /W:10 /Z /NP /NDL

Parameter erklärt

  • Die /MIROption (entspricht /E /PURGE) steht für "Spiegel" und ist die wichtigste Option. Es betrachtet Ihren Quellordner als "Master", wodurch alle Änderungen auf der Zielseite überschrieben werden. Dies ist eine nützliche Einstellung für eine Sicherung.

  • /FFTDies ist eine sehr wichtige Option, da beim Vergleichen von Zeitstempeln von Dateien ein Unterschied von 2 Sekunden möglich ist, sodass geringfügige Zeitunterschiede zwischen Ihrem Computer und Ihrem Sicherungsgerät keine Rolle spielen. Dadurch wird sichergestellt, dass nur geänderte Dateien kopiert werden, auch wenn die Änderungszeiten der Dateien nicht genau synchronisiert sind.

  • /R:3Gibt die Anzahl der Wiederholungsversuche an, falls die Verbindung fehlschlagen sollte, und /W:10gibt eine Wartezeit von 10 Sekunden zwischen den Wiederholungsversuchen an. Dies sind nützliche Optionen für die Sicherung über ein Netzwerk.

  • /Z kopiert Dateien im "Neustartmodus", sodass teilweise kopierte Dateien nach einer Unterbrechung fortgesetzt werden können.

  • /NPund /NDLunterdrücken Sie einige Debug-Ausgaben, die Sie zusätzlich hinzufügen /NSkönnen /NC, /NFLum die Ausgabemenge weiter zu reduzieren ( Einzelheiten finden Sie in der Dokumentation ). Ich würde jedoch vorschlagen, einige Debug-Ausgaben während der ersten Läufe zu drucken, um sicherzustellen, dass alles wie erwartet funktioniert.

Zusätzliche nützliche Parameter, die von anderen Benutzern erwähnt wurden

  • /XJDAusgeschlossen sind "Knotenpunkte" für Verzeichnisse, symbolische Links, die während der Sicherung zu Problemen wie Endlosschleifen führen können. Siehe Brians Kommentare für Details.

  • /MT[:N]verwendet Multithreading und kann die Übertragung vieler kleiner Dateien beschleunigen. Für N sollte ein Wert von 2-4 mal der Anzahl der Kerne auf einer normalen Maschine reichen. Kommentiert von Zoredache zur ursprünglichen Frage.

Als Antwort auf Grangers Kommentar bearbeiten:

Wenn Sie wirklich Dateien behalten möchten, die auf dem Ziel, aber nicht auf der Quellseite vorhanden sind, ersetzen Sie einfach die /MIROption durch /E. Es wird jedoch dringend empfohlen, diese Option zu verwenden, /MIRwenn Sie das Ziel für inkrementelle Sicherungen verwenden möchten. Andernfalls werden alle Dateien, die an der Quelle umbenannt oder verschoben wurden, das Ziel überladen, was bedeutet, dass Sie Duplikate erhalten. Ich erstelle normalerweise einen Unterordner "backup" auf dem Ziel, der eine 1: 1-Kopie meines Quellordnerbaums enthält. Auf diese Weise können Sie weiterhin historische Dateien neben dem Sicherungsordner aufbewahren und diese später sicher entfernen oder neu organisieren.


Ermöglicht dieser Befehl das Kopieren von Dateien mit Berechtigungen? Robokopie C: \ Quelle M: ​​\ Ziel / MIR / FFT / R: 3 / B: 10 / Z / NP / NDL
Shabeer Sher

4
Mit Ausnahme von / MIR (/ PURGE) werden Dateien am Ziel gelöscht, die an der Quelle nicht mehr vorhanden sind. Die gestellte Frage stellte ausdrücklich fest, dass dies nicht erwünscht war.
Granger

@Shabeer Nein, Robocopy kopiert standardmäßig nur Daten (D), Attribute (A) und Zeitstempel (T). Andere Werte müssen mit dem Parameter "/ copy: <value>" angegeben werden, z. B. "/ copy: DATS", um ACL-Berechtigungen einzuschließen. Da ich aber auf ein Linux-basiertes NAS kopiere, ergibt das für mich keinen Sinn.
Pederpansen

1
@ Brian Danke für den Hinweis. Ich hatte noch nie Probleme mit Kreuzungspunkten, aber ich denke, es wird nicht schaden, sie nur für den Fall zu vermeiden. Fügte es in meiner Antwort hinzu.
Pederpansen

1
@pederpansen: Es tritt in der Regel auf, wenn Benutzerordner (oder ein gesamtes Laufwerk) kopiert werden. In der Regel ist der Anwendungsdatenordner der Täter, da er aus Gründen der Anwendungskompatibilität einen Knotenpunkt hat. Versuchen Sie, an einer Eingabeaufforderung "cd C: \ Users \ [USERFOLDER] \ AppData \ Local \ Application Data \ application data \ application data \" auszuführen, wenn Sie einen unbegrenzten Beispielpfad anzeigen möchten. Dies funktioniert sogar unter Windows 10.
Brian

8

Ich benutze gerne folgendes:

robocopy "C:\Users\<user>" "F:\robocopy\<user>" /XJD /R:0 /XA:SH /E /ZB /XO /XD "Downloads" "AppData" /LOG:robocopy.log /TEE

Ich führe dies als Administrator aus, damit im Sicherungsmodus ( /bOption) Kopien der verwendeten Dateien erstellt werden können.

Andere Optionen, die sich nicht auf die inkrementelle Art der Sicherung beziehen, sind:

/XD um Verzeichnisse von der Sicherung auszuschließen.

/XJD Kreuzungspunkte ausschließen ("Meine Musik").

/R:0 um die Wiederholung fehlgeschlagener Versuche auf 0 zu setzen.

/XA:SH versteckte und Systemdateien zu überspringen.

Fügen Sie die folgenden Optionen hinzu, um so viele Protokollinformationen wie möglich zu entfernen /NP /NS /NDL /NFL /NC.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.