Zwei Copy-Logfiles abgleichen

  • Hallo liebe Leute,
    ich habe ein Problem mit Logdateien.
    Mein Ziel ist es, aus einem Archiv, dass über mehrere Hauptverzeichnisse (Raid, Temp und ein weiteres) verteilt ist, sämtliche Files in einen Zielordner zu kopieren. Die Positionen der Files sind in einer Datenbank vorhanden. Es besteht dass Problem, dass ich aus der Datenbank heraus zwei Batchfiles erzeuge (mit Select), pro Filesystem-Ordner eine. Es sind aber nicht alle Dateien in allen Ordnern vorhanden, der Dateiname ist einzigartig (Datei A in Raid ist identisch mit Datei A in Temp).


    Ein Beispiel:
    In Raid vorhanden:
    A.xxx
    B.xxx
    D.xxx
    F.xxx


    In Temp vorhanden:
    B.xxx
    D.xxx
    E.xxx
    F.xxx


    Damit habe ich in den Logfiles vom Kopieren aus dem Raid stehen, dass C.xxx und E.xxx nicht kopiert werden konnten, und in den Logfiles von Temp, dass A.xxx und C.xxx fehlen. Für mich sind aber nur die Kopierfehler interessant, die aus BEIDEN Verzeichnissen kommen.
    Wie kann ich meine Logfiles korrekt filtern? Hat hier jemand eine Idee?




    Anhang:


    Ausschnitt von Logfile Raid:

    Zitat


    E:\Export_2009-03>XCOPY /C /K /O /X /Y \\160.54.16.19\LDMS$\LDMS\RAID\ARCA\KAB1\00000000\0000009D\000030FD.CLD E:\Export_2009-03\KAB1\
    \\160.54.16.19\LDMS$\LDMS\RAID\ARCA\KAB1\00000000\0000009D\000030fd.cld
    1 File(s) copied


    E:\Export_2009-03>XCOPY /C /K /O /X /Y \\160.54.16.19\LDMS$\LDMS\RAID\ARCA\KAB1\00000000\00000064\00003891.CLD E:\Export_2009-03\KAB1\
    0 File(s) copied


    Ausschnit von Logfile Temp:

    Zitat

    E:\Export_2009-03>XCOPY /C /K /O /X /Y \\160.54.16.19\LDMS$\LDMS\TEMP\KAB1\00000000\00000074\000074AA.CLD E:\Export_2009-03\KAB1\
    \\160.54.16.19\LDMS$\LDMS\TEMP\KAB1\00000000\00000074\000074AA.CLD
    1 File(s) copied

    Gigabyte GA-X58A-OC, Intel i7-980X, 12GB DDR3-RAM 2000Mhz, 2x Geforce GTX480, 1x Geforce 8800GTS, X-Fi Platinum, 3x OCZ-SSD 120GB (Raid0), watercooled


    "Die Welt ist klein, gemein und gnadenlos, und jeder stirbt einsam..."

  • Moin,


    ich hoffe, ich hab es richtig verstanden. Du willst die Einträge aus beiden Log-Files haben, die die selbe Datei haben und wo beides nicht kopiert wurde?
    Ein ganz simpler Ansatz wäre, eine Programmier/Script-Sprache nach Wahl zu nehmen, einen kleine Log-Dateien Parser zu Schreiben und so dann jede Zeile (die z.B. in eine String-Datenstruktur eingelsen wurde) mit jeder anderen Zeile (aus dem anderen Log-File) zu vergleichen. Und da dann immer auf "0 File(s) copied" vergleichen. Ist nur ein Beispiel. Die zeitliche Komplexität ist zwar quadratisch, aber falls es nicht so viele Einträge sind, könnte es reichen.
    Vllt. auch ein anderer Ansatz: nicht mit den Log-Files arbeiten, sondern dir die Verzeichnisse direkt auflisten lassen, also die enthaltenen Dateien. Du weißt ja anscheinend, was drinnen stehen sollte und was steht. Das kannst du dann einfach vergleichen. Ein ganz normaler String-Compare sozusagen.
    Hoffe das war irgendwie verständlich. :D
    Oder ich hab am Thema vorbei geschrieben....


    MfG

  • Hej,
    sorry, ich hatte die Antwort übersehen... das mit der Script-/Programmiersprache nach Wahl ist eigentlich eine gute Idee, allerdings bin ich noch nicht firm genug mit allem außer Batchfiles, um so etwas schon leicht komplexeres aufzubauen... :/ Außerdem geht es hier um Zahlenbereiche von an die 200.000 Einträge pro Log, bei einer Archivzahl von 8 Archiven... brrr...


    Bei dem vergleichen der enthaltenen Archive habe ich halt das Problem, dass eine Datei halt aus zwei verschiedenen Quellen gekommen sein kann - dh ich kann den Eintrag aus der Datenbank nehmen und prüfen, ob die Datei da ist, ... moment. Vielleicht geht das, muss ich testen

    Gigabyte GA-X58A-OC, Intel i7-980X, 12GB DDR3-RAM 2000Mhz, 2x Geforce GTX480, 1x Geforce 8800GTS, X-Fi Platinum, 3x OCZ-SSD 120GB (Raid0), watercooled


    "Die Welt ist klein, gemein und gnadenlos, und jeder stirbt einsam..."

  • Hej,
    sorry, ich hatte die Antwort übersehen... das mit der Script-/Programmiersprache nach Wahl ist eigentlich eine gute Idee, allerdings bin ich noch nicht firm genug mit allem außer Batchfiles, um so etwas schon leicht komplexeres aufzubauen... :/ Außerdem geht es hier um Zahlenbereiche von an die 200.000 Einträge pro Log, bei einer Archivzahl von 8 Archiven... brrr...


    Bei dem vergleichen der enthaltenen Archive habe ich halt das Problem, dass eine Datei halt aus zwei verschiedenen Quellen gekommen sein kann - dh ich kann den Eintrag aus der Datenbank nehmen und prüfen, ob die Datei da ist, ... moment. Vielleicht geht das, muss ich testen

    Gigabyte GA-X58A-OC, Intel i7-980X, 12GB DDR3-RAM 2000Mhz, 2x Geforce GTX480, 1x Geforce 8800GTS, X-Fi Platinum, 3x OCZ-SSD 120GB (Raid0), watercooled


    "Die Welt ist klein, gemein und gnadenlos, und jeder stirbt einsam..."