arnito
Goto Top

ordner per batch synchronieren

Hallo zusammen,
folgenden Situation. Über Pfingsten ist eine Festplatte gestorben auf der wie immer wichtige Daten gespeichert sind. Die Datensicherung erfolgte incrementell auf einer anderen Festplate mittels ntbackup. Beim Rücksichern hat ntbackup den Vorgang abgebrochen, da die bkuf Datei inkonsistenzen aufweisst.
Mithilfe von Nucleus Kernel bkf (einen rescue Programm für defekte bkf Dateien) konnte ich soweit ich das übersehen kann den Stammordner sowie die meisten der inkrementell gesicherten Daten wieder herstellen, aber: und nun kommt die eigenliche batchfrage: ich sitze jetzt mit ca 100 Odnern da, in denen sich die hinzugekommen oder geänderten Daten befinden. Das Erstellungsdatum der Dateien ist übern jordan gegangen sprich ist der Wiederherstellungszeitpunkt, aber das Datum der letzten Änderung ist erstaunlicherweise noch richtig, desweiteren sind die Ordner durchnummeriert und die jeweils neuere Datei ist durch den Speicherort von den älteren Versionen zu unterscheiden.
Nun die große Frage, wie bekomme ich ohne jeden ordner einzeln anzufassen alles auf einen Stand? Ich denke xcopy kann das, aber ich müsste x copy ja eine liste der Ordner mit auf den Weg geben deren Inhalt über den Stammordner des Backups synchronisiert werden soll. Hätte ich mir diese Backup konstrukt ausgedacht wäre ich gerne bereit einen virtuellen Tritt in den Hintern entgegenzunehmen, aber Gott sei Dank habe ich das nicht selbst verzapft, sondern darf es nur ausbaden face-wink

Vielen Dank im Voraus

Arne

Content-Key: 60269

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

Printed on: May 11, 2024 at 01:05 o'clock

Member: bastla
bastla May 31, 2007 at 17:37:40 (UTC)
Goto Top
Hallo arnito!

Grundsätzlich kannst Du, wie schon vermutet, "xcopy" (mit dem Schalter "/D" ohne Angabe eines Datums) verwenden - damit werden nur neuere Dateien (bzw noch nicht im Zielverzeichnis vorhandene) kopiert.

Damit müsste sich prinzipiell der ganze Vorgang auf eine einfache "for"-Schleife über alle Sicherungsordner realisieren lassen, also etwa
for /f "delims=" %i in ('dir /b /ad /o-d "Quellordner"') do echo %i>>D:\LogFile.txt & xcopy /S /E /Y /D /F "Quellordner\%i" "Zielordner" >> D:\LogFile.txt  
Mit "Quellordner" ist jenes Verzeichnis (mit voller Pfadangabe, also etwa "E:\Backup") gemeint, in dem die einzelnen Sicherungsordner liegen. Auch für "Zielordner" ist ein vollständiger Pfad anzugeben.

Die Vorgabe "/o-d" für die Reihenfolge der Sicherungsordner soll dafür sorgen, dass die neuesten Dateien zuerst kopiert werden, sodass die später folgenden älteren Versionen dann schon übersprungen werden können.

... echo %i>>D:\LogFile.txt ...
sorgt dafür, dass der Name des Sicherungsordners in eine Logdatei geschrieben wird, und durch den Schalter "/F" und Umleitung der Ausgabe des "xcopy" werden auch alle kopierten Dateien mit Quelle und Ziel protokolliert. Damit Du den Ablauf (die einzelnen "xcopy"-Aufrufe) am Bildschirm mitverfolgen kannst, habe ich bewusst kein "@" verwendet.

Eventuell bereits im Zielverzeichnis vorhandene ältere Dateiversionen (sollte es ja eigentlich nicht geben, wenn das Zielverzeichnis zu Beginn noch leer war) werden durch den Schalter "/Y" ohne Rückfrage überschrieben. Der Einsatz des Schalters "/C" (um bei Fehlern das Kopieren dennoch fortzusetzen) wäre zu überlegen.

Ob Du die "xcopy"-Optionen "/K", "/O" oder ev "/X" benötigst, musst Du selbst entscheiden.

Falls Du die oben dargestellte Zeile als Batch verwenden willst, muss jedes %i als %%i geschrieben werden.

Grüße
bastla
Member: arnito
arnito May 31, 2007 at 18:58:02 (UTC)
Goto Top
Hallo bastla,
vielen Dank für die schnelle Antwort, das werde ich nachher gleich ausprobieren und anschliessend posten was passiert ist.

Viele Grüße

Arne
Member: arnito
arnito May 31, 2007 at 21:24:03 (UTC)
Goto Top
Hallo Bastla,
das hat auf anhieb geklappt!!!
da wird jemand morgen vor Glück im Quaree springen, wenn Deine Stammkneipe Überweisungen als Vorauszahlung für einen munteren Abend annimmt, her mit der Kontonummer face-wink

Vielen, vielen Dank

Arne