Frage ist gelöstRobocopy kopiert ungeänderte Dateien
27.04.2011
13:42:58 Uhr1890 Aufrufe
4 Antworten
13:42:58 Uhr
4 Antworten
Noch nicht bewertet
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
ctietje schreibt am 27.04.2011 um 14:23:40 Uhr
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?
ctietje schreibt am 27.04.2011 um 15:14:39 Uhr
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.
AndiW schreibt am 27.04.2011 um 15:48:59 Uhr
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?
/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?






