Discussion:
robocopy-Frage
(zu alt für eine Antwort)
Frank Hartwig
2010-04-05 07:18:11 UTC
Permalink
Moin zusammen,

braucht es für robocopy zusätzlich noch ein Verify ähnlich dem Schalter
/v bei xcopy oder ist das Filesystemabhängig?

Wenn ja, wie verifiziere ich mit robocopy die Kopien?


Gruß und Dank

Frank
Werner Tann
2010-04-05 09:22:45 UTC
Permalink
Post by Frank Hartwig
Wenn ja, wie verifiziere ich mit robocopy die Kopien?
Gute Frage. Wobei man da noch unterscheiden muß: meinst Du, ob
Robocopy etwas nicht kopieren konnte, oder ob Robocopy 100%
einwandfreie Kopien erstellt hat?

Im ersten Fall findest Du Einträge im Robocopy-Log. Das Problem ist,
daß man bei batchgesteuertem Aufruf von einem Dutzend
Robocopy-Prozessen dann ein Dutzend Logs öffnen müßte.

Auch der zweite Fall hat seinen Haken. Komplizierten
Robocopy-Synchronisationen kann man schwerlich einen File- oder
Directory-Vergleich nachschießen, weil sich mittlerweile die Files
oder Directories wieder verändert haben könnten.

Die einzige Idee, die ich zumindest für den ersten Fall habe, wäre,
die Logdateien nach dem Ende des Kopierprozesses mit einem Script bzw.
einer Batchdatei nach Errormeldungen abzufragen und dann eine Warnung
auszugeben. Beim zweiten Fall solltest Du einfach davon ausgehen, daß
Kopierprozesse von Platte auf Platte funktionieren, andernfalls hast
Du über kurz oder lang sowieso größere Probleme. Eine kaputte
Backup-Platte sollte man, etwa mit HDTune, schon lange vor
irgendwelchen gescheiterten Robocopy-Aktionen erkennen.
Joachim Bussmann
2010-04-06 07:08:07 UTC
Permalink
Moin Werner,
Post by Werner Tann
Im ersten Fall findest Du Einträge im Robocopy-Log. Das Problem ist,
daß man bei batchgesteuertem Aufruf von einem Dutzend
Robocopy-Prozessen dann ein Dutzend Logs öffnen müßte.
Geht auch anders:

/LOG+:file :: output status to LOG file (append to existing log).

Ergibt bei mir pro Batchlauf genau ein Log-File, in das ich im Batch
zwischen den robocopy-Aufrufen auch noch per "echo .. >>%logfile%"
weitere Meldungen ausgebe.


Gruss
Joachim
Werner Tann
2010-04-06 09:54:11 UTC
Permalink
Post by Joachim Bussmann
/LOG+:file :: output status to LOG file (append to existing log).
Ergibt bei mir pro Batchlauf genau ein Log-File, in das ich im Batch
Genauso habe ich es selber ja auch, was freilich noch übler ist, als
mehrere Logfiles anzulegen, Mein einziges Logfile ist 600 KB groß. Was
meinst Du, wie lange ich scrolle bzw. wie blöd ich mit STRG-F nach
"Failed" suchen muß, um alle etwaigen Errors aufzuspüren?
Lustigerweise sind die Treffer "Failed" an unterster Bildschirmzeile,
weshalb ich mit Hilfe der Maus immer wieder aus dem STRG-F Fenster
raus muß. :-) Das kann keine Lösung sein.

Sinnvoller, wenn ich's auf die Schnelle könnte, wäre wie gesagt eine
Batch-Datei, die das Logfile nach Fehlermeldungen durchsucht.
Jens Fittig
2010-04-06 10:10:31 UTC
Permalink
Post by Werner Tann
Post by Joachim Bussmann
/LOG+:file :: output status to LOG file (append to existing log).
Ergibt bei mir pro Batchlauf genau ein Log-File, in das ich im Batch
Genauso habe ich es selber ja auch, was freilich noch übler ist, als
mehrere Logfiles anzulegen, Mein einziges Logfile ist 600 KB groß. Was
meinst Du, wie lange ich scrolle bzw. wie blöd ich mit STRG-F nach
"Failed" suchen muß, um alle etwaigen Errors aufzuspüren?
Lustigerweise sind die Treffer "Failed" an unterster Bildschirmzeile,
weshalb ich mit Hilfe der Maus immer wieder aus dem STRG-F Fenster
raus muß. :-) Das kann keine Lösung sein.
Sinnvoller, wenn ich's auf die Schnelle könnte, wäre wie gesagt eine
Batch-Datei, die das Logfile nach Fehlermeldungen durchsucht.
mit (DOS-) "find" den log durchsuchen und nur die gefundenen Zeilen in
separate Datei schreiben lassen.
Frank Hartwig
2010-04-06 12:40:25 UTC
Permalink
Post by Jens Fittig
Post by Werner Tann
Post by Joachim Bussmann
/LOG+:file :: output status to LOG file (append to existing log).
Ergibt bei mir pro Batchlauf genau ein Log-File
Sinnvoller, wenn ich's auf die Schnelle könnte, wäre wie gesagt eine
Batch-Datei, die das Logfile nach Fehlermeldungen durchsucht.
mit (DOS-) "find" den log durchsuchen und nur die gefundenen Zeilen in
separate Datei schreiben lassen.
Erst mal Danke für die Antworten.

Bezüglich der Auswertung der Logfiles:

Reicht es nicht die Schalter /NDL und /NFL zu setzen? Wenn ich die Hilfe
richtig verstanden habe, werden dann nur noch Fehler gemeldet. Das würde
die Überdichtlichkeit des Logs natürlich gewaltig erhöhen.


Gruß Frank
Jens Fittig
2010-04-06 13:19:49 UTC
Permalink
Post by Frank Hartwig
Reicht es nicht die Schalter /NDL und /NFL zu setzen? Wenn ich die Hilfe
richtig verstanden habe, werden dann nur noch Fehler gemeldet. Das würde
die Überdichtlichkeit des Logs natürlich gewaltig erhöhen.
Sorry - da müsste ich auch erst nachschauen. Und ich habe hier kein RC
mehr installiert. Das hatte mir zuviele BUGs. Ich nehme XXCOPY.
Werner Tann
2010-04-06 14:30:32 UTC
Permalink
Post by Frank Hartwig
Reicht es nicht die Schalter /NDL und /NFL zu setzen? Wenn ich die Hilfe
richtig verstanden habe, werden dann nur noch Fehler gemeldet. Das würde
die Überdichtlichkeit des Logs natürlich gewaltig erhöhen.
Stimmt! Hab's gerade probiert. Super Lösung!
Frank Hartwig
2010-04-06 17:47:14 UTC
Permalink
Post by Werner Tann
Post by Frank Hartwig
Reicht es nicht die Schalter /NDL und /NFL zu setzen? Wenn ich die Hilfe
richtig verstanden habe, werden dann nur noch Fehler gemeldet. Das würde
die Überdichtlichkeit des Logs natürlich gewaltig erhöhen.
Stimmt! Hab's gerade probiert. Super Lösung!
Freut mich, wenn ich helfen konnte ;-)

Gruß Frank
Ralph A. Schmid, dk5ras
2010-04-07 09:32:18 UTC
Permalink
Post by Werner Tann
Sinnvoller, wenn ich's auf die Schnelle könnte, wäre wie gesagt eine
Batch-Datei, die das Logfile nach Fehlermeldungen durchsucht.
Ich habe solche Dinge immer mit qgrep und einer Batchdatei erschlagen,
da kann man sich dann ein eingedampftes logfile nach eigenem Gutdünken
zurechtmachen lassen.


-ras
--
Ralph A. Schmid

http://www.dk5ras.de/ http://www.db0fue.de/
http://www.bclog.de/
Frank Hartwig
2010-04-06 12:49:00 UTC
Permalink
Post by Werner Tann
Post by Frank Hartwig
Wenn ja, wie verifiziere ich mit robocopy die Kopien?
Gute Frage. Wobei man da noch unterscheiden muß: meinst Du, ob
Robocopy etwas nicht kopieren konnte, oder ob Robocopy 100%
einwandfreie Kopien erstellt hat?
Zweiteres wüde mir reichen. In aller Regel ändern sich bei mir die
kopierten Dateien auch nicht direkt nach dem Kopieren. Ich mache also
keine laufende Synchronisation, sondern lediglich ein Backup. Dazu
möchte ich ntbackup durch robocopy ersetzen. Ntbackup hat allerdings
noch eine verify-Funktion und mir ist nicht ganz klar, ob ich ähnliches
auch bei robocopy machen muß oder nicht.

Gruß Frank
Andreas Viehrig
2010-04-07 08:42:10 UTC
Permalink
... Ich mache also
keine laufende Synchronisation, sondern lediglich ein Backup. Dazu
möchte ich ntbackup durch robocopy ersetzen. Ntbackup hat allerdings
noch eine verify-Funktion und mir ist nicht ganz klar, ob ich ähnliches
auch bei robocopy machen muß oder nicht.
Würde sich wohl empfehlen. Nicht einmal unbedingt wg. Robocopy, AFAIK
schaut das wenigstens nach, ob die Daten ankamen, aber einen echten Verify
macht es nicht. Empfehlen würde sich jedoch eine Checksummen-Erstellung,
denn die größte Gefahr bei der ganzen Kopiererei ist ja doch, daß eine
Platte schleichend Sektorfehler entwickelt, die man nicht bemerkt, wenn man
nicht ununterbrochen die S.M.A.R.T-Werte inspiziert. Mit Checksummen hat
man einen recht guten Indikator.

Andi
--
Gratuliere!
Du lügst.
[Erich Pfennig in <g1tnd1$pl1$***@ulric.tng.de>]
Peter Schleif
2010-04-05 11:20:19 UTC
Permalink
Post by Frank Hartwig
braucht es für robocopy zusätzlich noch ein Verify ähnlich dem Schalter
/v bei xcopy oder ist das Filesystemabhängig?
Wenn ja, wie verifiziere ich mit robocopy die Kopien?
Ein bit-by-bit-Vergleich ist mit robocopy AFAIK nicht möglich. Du
könntest höchstens prüfen, ob alle Dateien korrekt abgearbeitet wurden
oder ob es z.B. wegen Zugriff-Verletzungen zu Problemen kam. Dazu
könntest robocopy noch mal leer laufen lassen (ohne wirklich zu
kopieren) und die (reduzierte) Ausgabe an find weiterleiten. Wenn find
nicht findet, war aus Sicht von robocopy alles okay.

robocopy E:\test S:\test /MIR /L /NJH /NJS | find "Neu"

Das sagt aber halt noch nichts darüber aus, ob die Dateien auch wirklich
bit-by-bit korrekt kopiert wurden und schlägt außerdem fehl, wenn
zwischenzeitlich Dateien erneut geändert wurden.

Für einen genauen Vergleich, könntest Du z.B. die MD5-Hashs aller
Dateien vergleichen. Für Windows gibt es eine sehr elegante
Shell-Extension [1], die sich in den Explorer einklinkt. Damit kannst Du
rekursiv für ganze Ordner MD5-Hash-Dateien erstellen lassen und diese
mit einem Klick gegen den Ziel-Ordner abgleichen. Ähnliche Tools gibt es
auch für die Kommandozeile.

Peter

[1] http://code.kliu.org/hashcheck/
Jens Fittig
2010-04-06 07:35:35 UTC
Permalink
Post by Frank Hartwig
Moin zusammen,
braucht es für robocopy zusätzlich noch ein Verify ähnlich dem Schalter
/v bei xcopy oder ist das Filesystemabhängig?
Wenn ja, wie verifiziere ich mit robocopy die Kopien?
Das ist weder bei xcopy noch bei robocopy überhaupt nötig.
Frank Hartwig
2010-04-06 12:55:54 UTC
Permalink
Post by Jens Fittig
Post by Frank Hartwig
Moin zusammen,
braucht es für robocopy zusätzlich noch ein Verify ähnlich dem Schalter
/v bei xcopy oder ist das Filesystemabhängig?
Wenn ja, wie verifiziere ich mit robocopy die Kopien?
Das ist weder bei xcopy noch bei robocopy überhaupt nötig.
Dann ist Deiner Meinung nach eine Kopie von xcopy oder robocopy immer
bit by bit identisch? Auch bei Kopien auf USB-Platten? Wozu gibt es dann
den Schalter /v bei xcopy?


Gruß Frank
Jens Fittig
2010-04-06 13:28:41 UTC
Permalink
Post by Frank Hartwig
Post by Jens Fittig
Post by Frank Hartwig
Moin zusammen,
braucht es für robocopy zusätzlich noch ein Verify ähnlich dem Schalter
/v bei xcopy oder ist das Filesystemabhängig?
Wenn ja, wie verifiziere ich mit robocopy die Kopien?
Das ist weder bei xcopy noch bei robocopy überhaupt nötig.
Dann ist Deiner Meinung nach eine Kopie von xcopy oder robocopy immer
bit by bit identisch?
Ja - und habe es noch nie(!) anders erlebt.
Post by Frank Hartwig
Auch bei Kopien auf USB-Platten?
Ja
Post by Frank Hartwig
Wozu gibt es dann
den Schalter /v bei xcopy?
Keine Ahnung - hat wohl historische Gründe als es unter Uralt-DOS noch
kein automatisches Verify bei Copy gab. Bei Disketten war das aus
Gründen der Zugrifsszeit am Anfang nicht automatisch.

Es gibt nach meiner Erfahrung keine Kopierfehler, die nicht sofort mit
massiven Meldungen gemeldet werden. Also bei echt gravierenden
Datenträgerfehlern. Alles ander "bügelt" das Dateisystem oder die
Datenträgerverwaltung des Mediums selbst aus.

Ich kopiere fast ausschliesslich mit XXCOPY oder Syncback(!).

Und hatte, ausser bei einer kaputten Platte mit massiven Hängern und
Meldungen, noch nie einen Kopierfehler. Das würde bei meinen
gelegentlichen Duplikatssuchen auf "Bitebene" auffallen wenn da mal 2
Dateien einen Unterschied hätten. Wenn ein Unterschied da ist, dann
aufgrund von Änderungen.

Meine Kopieraktion sind übrigens regelmäßig im Bereich von
zehntausenden Dateien.
Andreas Viehrig
2010-04-07 08:34:54 UTC
Permalink
Post by Frank Hartwig
braucht es für robocopy zusätzlich noch ein Verify ähnlich dem Schalter
/v bei xcopy oder ist das Filesystemabhängig?
Zunächst einmal wäre festzustellen, daß der Parameter /V bei Xcopy *mit
Sicherheit* *nicht* für eine bitweise, binäre Prüfung steht. Dafür ist
Xcopy mit diesem Parameter viel zu schnell. Was genau Xcopy da verifiziert,
ist unklar, aber es dürfte vermutlich kaum mehr als Zeitstempel, Dateigröße
und vielleicht noch Anzahl der Sektoren o. ä. sein. Schon eine
Checksummen-Prüfung scheidet wg. der Schnelligkeit aus.

Für einen bitweisen Vergleich könnte man z. B. Windiff nehmen, das läßt
sich für die Kommandozeile/Batches entsprechend parametrisieren. Alternativ
kämen Checksummen-Verfahren in Frage, die auch schneller sind, siehe unten.
Post by Frank Hartwig
Wenn ja, wie verifiziere ich mit robocopy die Kopien?
Z. B. mittels
<http://www.heise.de/ct/hotline/Kopierte-Dateien-ueberpruefen-326742.html>
und
<http://www.heise.de/ct/hotline/foren/S-Das-fertige-Skript-mit-Robocopy-und-fciv-koennte-dann-z-Bsp-so-aussehen/forum-160166/msg-16970516/read/>

Andi
--
"Statt gegen die Anbieter kinderpornographischer Inhalte strafrechtlich
effektiv vorzugehen und die Inhalte ganz aus dem Netz zu entfernen,
greift die Bundesregierung wider besseres Wissen zu einer Maßnahme,
die wirkungslos ist." Volker Beck, Die Grünen
Frank Hartwig
2010-04-07 15:09:20 UTC
Permalink
Post by Andreas Viehrig
Post by Frank Hartwig
Wenn ja, wie verifiziere ich mit robocopy die Kopien?
Z. B. mittels
<http://www.heise.de/ct/hotline/Kopierte-Dateien-ueberpruefen-326742.html>
und
<http://www.heise.de/ct/hotline/foren/S-Das-fertige-Skript-mit-Robocopy-und-fciv-koennte-dann-z-Bsp-so-aussehen/forum-160166/msg-16970516/read/>
Ja, möglicherweise, das muß ich erst mal auf meine Backups loslassen, um
zu sehen, wie fciv auf knapp 100.000 Dateien reagiert und wie
übersichtlich die Handhabung ist. Idealerweise soll ja was
vollautomatisches und Idiotensicheres dabei herauskommen.


Erstmal Dank

Frank

Loading...