D
Der_Wolf
Jungspund
Sehr geehrte Dame und Herren,
ich bin neu hier im forum deshalb begrüsse ich alle recht herzlich .
Ich habe ein Problem, ich habe auf einem Raid Server ca 4 TB Daten. Um das Datenaufkommen zu verringern möchte ich Dateien in bestimmten Ordnern packen. Wenn ich diese Aufgabe von einem einzelnen Prozess erledigen lassen würde, würde das sehr lange dauern da nur ein Prozessor genutzt werden könnte. Ich habe ein shell script geschrieben das zu packenden Daten mittels find sucht.
Nun möchte ich mind. zwei Prozessoren parallel damit beauftragen diese gefundenen Daten zu packen.
Mein Ansatz war das Ergebnis von find in eine Textdatei zu schreiben. Sie enthält Zeilenweise jede Datei die gepackt werden muss. Nun wollte ich mit "wc" die Anzahl der Zeilen ermitteln und durch die Anzahl der zu benutzenden Prozessoren (eventuell Eingabeparameter) teilen. Anschliessend sollten "Workerprozesse" gestartet werden (ich dachte an exec ... &) die jeweils als Eingabeparameter einen Zeilenbereich für die Datei erhalten, den Dateinamen mit "cut" holen und somit vollkommen parallel arbeiten können.
Leider ist mein Wissen über shell programmierung nicht fundiert genug um dies zu realisieren.
Ich wäre euch sehr dankbar wenn ihr mir einen Denkanstoss geben könntet ob dieser Weg realisierbar ist, oder ob es viel einfacher geht.
mit freundlichen grüssen
Denny S.
ich bin neu hier im forum deshalb begrüsse ich alle recht herzlich .
Ich habe ein Problem, ich habe auf einem Raid Server ca 4 TB Daten. Um das Datenaufkommen zu verringern möchte ich Dateien in bestimmten Ordnern packen. Wenn ich diese Aufgabe von einem einzelnen Prozess erledigen lassen würde, würde das sehr lange dauern da nur ein Prozessor genutzt werden könnte. Ich habe ein shell script geschrieben das zu packenden Daten mittels find sucht.
Nun möchte ich mind. zwei Prozessoren parallel damit beauftragen diese gefundenen Daten zu packen.
Mein Ansatz war das Ergebnis von find in eine Textdatei zu schreiben. Sie enthält Zeilenweise jede Datei die gepackt werden muss. Nun wollte ich mit "wc" die Anzahl der Zeilen ermitteln und durch die Anzahl der zu benutzenden Prozessoren (eventuell Eingabeparameter) teilen. Anschliessend sollten "Workerprozesse" gestartet werden (ich dachte an exec ... &) die jeweils als Eingabeparameter einen Zeilenbereich für die Datei erhalten, den Dateinamen mit "cut" holen und somit vollkommen parallel arbeiten können.
Leider ist mein Wissen über shell programmierung nicht fundiert genug um dies zu realisieren.
Ich wäre euch sehr dankbar wenn ihr mir einen Denkanstoss geben könntet ob dieser Weg realisierbar ist, oder ob es viel einfacher geht.
mit freundlichen grüssen
Denny S.
Zuletzt bearbeitet: