Robocopy kopiert ungeänderte Dateien
Hallo,
nachdem ich nun schon eine Weile erfolglos nach einer Lösung suche probier ich doch mal hier:
Ich habe 2 Datenspeicher die ich halbautomatisch syncron halten will. Auf den eien Datenpool habe ich über eine WAN Strecke nur Lesezugriff. Dieser stellt Daten bereit, die ich zum Teil leicht abgeändert auf meinem Storage zur Verfügung stellen muss.
Der robocopy Aufruf dazu sieht aus wie folgt:
robocopy \\server01\daten \\samba01\daten /MIR /FFT /COPY:DT /XO /FP /NDL /NJS /NJH /L >> %diff_file% 2>>&1
Hier die Erklärung dazu:
/MIR Quelle und Ziel identisch halten
/FFT Zeitunterschied bis 2 Sekunden
/COPY:DT Nur Daten und Zeitstempel
/XO Ältere Dateien ausschließen
/FP Vollen Dateipfad ausgeben
/NDL Keine Verzeichnisse ausgeben
/NJS Keine Zusammenfassung
/NJH Kein Header
/L Nur anzeige
"MIR" dürfte klar sein, da ich eben das Problem, dass unveränderte Dateien angezeigt wurden Anfangs schon hatte habe ich "FFT" eingebaut. Dann war alles ok. "COPY:DT" damit die Daten nur kopiert werden, wenn sich die Daten selbst bzw. der Zeitstempel ändern. "XO", damit die Daten, die wir händisch bei uns anpassen müssen, erst wieder angezeigt werden, wenn sie in der Quelle nach unserer Änderung nochmals geändert werden. "FP" damit ich die Dateien in den Unterstrukturen gleicvh finde um sie zu vergleichen. "NDL", damit mir nicht immer alle Verzeichnisse aufgelistet werden in denen nichts geändert wurde. "NJS" + "NJH", da ich nur die Dateiliste in meinem Sync-Log benötige, damit ich es einfacher per batch auswerten kann. Und zu guter letzt "L", da ich die Änderungen händisch übertrage, da ich alles vorab vergleichen muss.
Hört sich vielleicht sehr komplex an, es geht aber lediglich darum, Scripte zu übernehmen, die wir für unseren Standort je nach Änderung immer wieder individuell anpassen müssen. Daher möchte ich mit diesem Script nur eine Dateiliste erstellen, die ich dann abarbeiten kann.
Das ganze hat auch eine Zeit lang funktioniert. Aber nun auf einem werden mir immer Dateien aufgelistet, die nicht geändert sind. Das ist natürlich ärgerlich, da ich die Dateien ja erstmal vergleichen muss, um das festzustellen.
Was ich bemerkt habe ist, dass es meistens mehrere aufeinanderfolgende Dateien sind, die robocopy fälschlicherweise als geändert darstellt. Z.Bsp bei folgenden Dateien in einem Verzeichnis:
Datei01.bat
Datei02.bat
Datei03.bat
Datei04.bat
Datei05.bat
Datei06.bat
Nun würden hier zum Beispiel Datei03.bat, Datei04.bat und Datei05.bat fälschlicherweise als geändert markiert werden. Was noch nicht vorgekommen ist, dass fälschlicherweise Datei01.bat und Datei03.bat angezeigt werden.
Ich hoffe es ist einigermaßen verständlich und hoffe es gibt jemanden, mit einer Lösung.
Das Quellsystem kenne ich übrigens nicht. Ziel ist ein Samba mit einer DFS Struktur.
Danke!
Andi
nachdem ich nun schon eine Weile erfolglos nach einer Lösung suche probier ich doch mal hier:
Ich habe 2 Datenspeicher die ich halbautomatisch syncron halten will. Auf den eien Datenpool habe ich über eine WAN Strecke nur Lesezugriff. Dieser stellt Daten bereit, die ich zum Teil leicht abgeändert auf meinem Storage zur Verfügung stellen muss.
Der robocopy Aufruf dazu sieht aus wie folgt:
robocopy \\server01\daten \\samba01\daten /MIR /FFT /COPY:DT /XO /FP /NDL /NJS /NJH /L >> %diff_file% 2>>&1
Hier die Erklärung dazu:
/MIR Quelle und Ziel identisch halten
/FFT Zeitunterschied bis 2 Sekunden
/COPY:DT Nur Daten und Zeitstempel
/XO Ältere Dateien ausschließen
/FP Vollen Dateipfad ausgeben
/NDL Keine Verzeichnisse ausgeben
/NJS Keine Zusammenfassung
/NJH Kein Header
/L Nur anzeige
"MIR" dürfte klar sein, da ich eben das Problem, dass unveränderte Dateien angezeigt wurden Anfangs schon hatte habe ich "FFT" eingebaut. Dann war alles ok. "COPY:DT" damit die Daten nur kopiert werden, wenn sich die Daten selbst bzw. der Zeitstempel ändern. "XO", damit die Daten, die wir händisch bei uns anpassen müssen, erst wieder angezeigt werden, wenn sie in der Quelle nach unserer Änderung nochmals geändert werden. "FP" damit ich die Dateien in den Unterstrukturen gleicvh finde um sie zu vergleichen. "NDL", damit mir nicht immer alle Verzeichnisse aufgelistet werden in denen nichts geändert wurde. "NJS" + "NJH", da ich nur die Dateiliste in meinem Sync-Log benötige, damit ich es einfacher per batch auswerten kann. Und zu guter letzt "L", da ich die Änderungen händisch übertrage, da ich alles vorab vergleichen muss.
Hört sich vielleicht sehr komplex an, es geht aber lediglich darum, Scripte zu übernehmen, die wir für unseren Standort je nach Änderung immer wieder individuell anpassen müssen. Daher möchte ich mit diesem Script nur eine Dateiliste erstellen, die ich dann abarbeiten kann.
Das ganze hat auch eine Zeit lang funktioniert. Aber nun auf einem werden mir immer Dateien aufgelistet, die nicht geändert sind. Das ist natürlich ärgerlich, da ich die Dateien ja erstmal vergleichen muss, um das festzustellen.
Was ich bemerkt habe ist, dass es meistens mehrere aufeinanderfolgende Dateien sind, die robocopy fälschlicherweise als geändert darstellt. Z.Bsp bei folgenden Dateien in einem Verzeichnis:
Datei01.bat
Datei02.bat
Datei03.bat
Datei04.bat
Datei05.bat
Datei06.bat
Nun würden hier zum Beispiel Datei03.bat, Datei04.bat und Datei05.bat fälschlicherweise als geändert markiert werden. Was noch nicht vorgekommen ist, dass fälschlicherweise Datei01.bat und Datei03.bat angezeigt werden.
Ich hoffe es ist einigermaßen verständlich und hoffe es gibt jemanden, mit einer Lösung.
Das Quellsystem kenne ich übrigens nicht. Ziel ist ein Samba mit einer DFS Struktur.
Danke!
Andi
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 165253
Url: https://administrator.de/contentid/165253
Ausgedruckt am: 22.11.2024 um 08:11 Uhr
6 Kommentare
Neuester Kommentar
ist mir nicht verständlich - aber soweit ich getestet habe, schließt "/mir" so gut wie alle anderen Schalter aus, da ganz einfach ein Spiegel (Mirror) der Quelle auf dem Ziel erstellt wird:
- auf der Quelle nicht, aber im Ziel vorhandene Dateien werden gelöscht
- auf der Quelle vorhandene und im Ziel nicht vorhandene Dateien werden dahin kopiert.
Worin besteht das Problem jetzt genau?
- auf der Quelle nicht, aber im Ziel vorhandene Dateien werden gelöscht
- auf der Quelle vorhandene und im Ziel nicht vorhandene Dateien werden dahin kopiert.
Worin besteht das Problem jetzt genau?
nur anzeigen oder auch kopieren? Ich mache das seit Jahren so:
robocopy "\\Server\Server_Daten" "%1\Sicherungen_von_Server" *.do* *.xl* *.ppt *.mpp *.dwg *.pro *.jpg *.bmp *.tif *.pdf *.zip *.mov *.avi *.mp* *.plt *.ncd /S /A /ZB /R:0 /LOG+:"\\Rechner\Robocopy_Logdateien\Robocopy_externe_Platte.log" /TEE /NDL
wobei /A für "geänderte Dateien kopieren" ist und /M wäre anstelle /A für "kopieren und Attribut geändert zurücksetzen", übrigens identisch mit den xcopy-Schaltern.
robocopy "\\Server\Server_Daten" "%1\Sicherungen_von_Server" *.do* *.xl* *.ppt *.mpp *.dwg *.pro *.jpg *.bmp *.tif *.pdf *.zip *.mov *.avi *.mp* *.plt *.ncd /S /A /ZB /R:0 /LOG+:"\\Rechner\Robocopy_Logdateien\Robocopy_externe_Platte.log" /TEE /NDL
wobei /A für "geänderte Dateien kopieren" ist und /M wäre anstelle /A für "kopieren und Attribut geändert zurücksetzen", übrigens identisch mit den xcopy-Schaltern.
Sag mal konntest du das Problem klären? Dein Wissen scheint da dem meinen bei weitem überlegen zu sein. Der Sachverhalt liegt bei mir in der Tat viel einfacher. Ich mache einen Mirror über Wan auf eine Festplatte an einer Fritzbox (so eine Art poor mans Zweitbackup), welche die "Erstbefüllung" per USB am Server erhalten hat. Jetzt werden leider die ungeänderten Dateien mitkopiert, was über eine schmalbandige DSL-Leitung eher nicht so gut kommt, da ein Backup von 100Gb auf die Art schon theoretisch fast 21 Tage braucht. Normalerweise ändern sich dort in den verschiedensten Verzeichnissen ca 10MB pro Tag.
Woran erkennt er denn, dass die Dateien angeblich neuer sind?
Jens
Woran erkennt er denn, dass die Dateien angeblich neuer sind?
Jens
Hallo zusammen,
der Thread ist alt und der Fragesteller hat vielleicht nicht bis heute auf eine Lösung des Problems gewartet. Aber wenn ich Google mit meinem Problem bemühe, stoße ich immer wieder auf diese Seite. Daher möchte ich auch nach fünf Jahren noch eine Antwort hinterlassen.
Bei mir kopiert robocopy.exe ebenfalls immer alle Dateien (und nicht nur die geänderten, wie die Option /mir das sollte) von der Quelle zum Ziel, egal an welcher Schraube ich drehe.
Interessant dabei:
Quelle: Win10 64bit
Ziel: Virtueller Debian Webserver, Zugriff per WebDAV
Also habe ich einfach mal ein neues Ziel (anderen lokaler Ordner) gewählt. Das Problem war weg.
Ich habe alle Skripte auf eine neue Quelle (Win7) übertragen. Das Problem war weg.
Anschließend habe ich robocopy.exe vom Win7 auf Win10 kopiert. Das Problem war weg. Allerdings werden dabei die Logs sowohl im cmd, als auch in Textform geschrottet, sodass ich diese Option nicht nutzen will.
Ergo: Robocopy unter Win10 auf ein Linux-Gerät geht nicht, weil Robocopy kaputt.
Wenn ich bei meiner Suche richtig gesehen habe, ist das so ab Win8.
Ich habs Microsoft geschrieben. Mal schauen, ob die das interessiert.
Bis dahin (also bis zu St. Nimmerlein) kann man in Win10, nachdem man sich entsprechende Rechte verschafft hat, Robocopy.exe umbennenen und aus dem Action Pack zu Server 2003 das damalige robocopy.exe verwenden. Das klappt.
Martin
der Thread ist alt und der Fragesteller hat vielleicht nicht bis heute auf eine Lösung des Problems gewartet. Aber wenn ich Google mit meinem Problem bemühe, stoße ich immer wieder auf diese Seite. Daher möchte ich auch nach fünf Jahren noch eine Antwort hinterlassen.
Bei mir kopiert robocopy.exe ebenfalls immer alle Dateien (und nicht nur die geänderten, wie die Option /mir das sollte) von der Quelle zum Ziel, egal an welcher Schraube ich drehe.
Interessant dabei:
Quelle: Win10 64bit
Ziel: Virtueller Debian Webserver, Zugriff per WebDAV
Also habe ich einfach mal ein neues Ziel (anderen lokaler Ordner) gewählt. Das Problem war weg.
Ich habe alle Skripte auf eine neue Quelle (Win7) übertragen. Das Problem war weg.
Anschließend habe ich robocopy.exe vom Win7 auf Win10 kopiert. Das Problem war weg. Allerdings werden dabei die Logs sowohl im cmd, als auch in Textform geschrottet, sodass ich diese Option nicht nutzen will.
Ergo: Robocopy unter Win10 auf ein Linux-Gerät geht nicht, weil Robocopy kaputt.
Wenn ich bei meiner Suche richtig gesehen habe, ist das so ab Win8.
Ich habs Microsoft geschrieben. Mal schauen, ob die das interessiert.
Bis dahin (also bis zu St. Nimmerlein) kann man in Win10, nachdem man sich entsprechende Rechte verschafft hat, Robocopy.exe umbennenen und aus dem Action Pack zu Server 2003 das damalige robocopy.exe verwenden. Das klappt.
Martin