andiw
Goto Top

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

Content-Key: 165253

Url: https://administrator.de/contentid/165253

Printed on: April 19, 2024 at 20:04 o'clock

Mitglied: 57263
57263 Apr 27, 2011 at 12:23:40 (UTC)
Goto Top
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?
Member: AndiW
AndiW Apr 27, 2011 at 12:30:56 (UTC)
Goto Top
Mein Problem ist, dass er mir nur Dateien anzeigen soll, die auf der Quelle neuer sind als auf meinem Ziel, da ich ja nach dem kopieren Dateien händisch ändern muss.

Werde das mal ohne "MIR" probieren und bis in ner halben Stunde feedback geben.
Mitglied: 57263
57263 Apr 27, 2011 at 13:14:39 (UTC)
Goto Top
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.
Member: AndiW
AndiW Apr 27, 2011 at 13:48:59 (UTC)
Goto Top
Ich möchte das ganze nur angezeigt bekommen.
/A hilft mir hier nicht, wenn dann müsste ich /M nehmen und das kann ich nicht, da ich in der Quelle nicht das Recht habe, das Attribut zurückzusetzen.

Der Versuch ohne /MIR brachte nichts. Gleiches Ergebnis.

Ich denke das hat irgendwas mit den Quell und Zielsystemen zu tun. Vielleicht genügt die 2 Sekunden differenz von /FFT nicht. Denn es hat ja schon funktioniert und es sind ja auch nur ca. 50 von mehreren tausend Dateien bei denen dieser Fehler auftritt. Kann ich die Zeitdifferenz von /FFT konfigurieren?
Das heißt die robocopy Parameter müssten soweit stimmen.

Eventuell auch irgendein Timeout, der durch die WAN Strecke verursacht wird?
Member: mesobot
mesobot Sep 14, 2012 at 07:16:21 (UTC)
Goto Top
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
Member: Martin-FfM
Martin-FfM Aug 28, 2016 updated at 22:31:41 (UTC)
Goto Top
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