Re: Probleme mit Archive::Tar

Ralph Müller <[email protected]>
Newsgroups gmane.linux.suse.programming
Message-ID <[email protected]>
Am Montag, den 12.06.2006, 15:42 +0200 schrieb David Haller:
> Am Son, 11 Jun 2006, Ralph Müller schrieb:
> >Mittels Archive::Tar erzeuge ich tar.gz-Archive. 20 Minuten gehts
> >ohne Probleme, dann kommt das Skript aber in die Situation, in der
> >es ein Archiv aus 5 Dateien mit zusammen 65 MB erzeugen soll. In
> >diesen Sekunden schwillt /proc/loadavg auf über 6 an, in
> >/var/log/messages erscheint ein einfacher Hinweis a la
> >"highmem: empty", und das Skript bricht ab, und hoppla,
> >"Getötet" steht in der letzten Zeile. (Letzteres ist keine Ausgabe
> >des Skriptes.)
> 
> Zeig mal her wie du Archive::Tar verwendest.

Konzentriert auf das Problem sieht das so aus:

#!/usr/bin/perl
use File::Find;
use Archive::Tar;
$tar = Archive::Tar->new();
find ({wanted => \&scan, postprocess => \&compress}, "/tmp");
sub scan {
    if (-f) {
        print "Sammele Datei \"$File::Find::name\" ein.\n";
        $tar->add_files($File::Find::name);
    }
}
sub compress {
    $tar->write("/tmp/backup.tgz",1);  # Archiv auf Festplatte schreiben
}
exit;

Irgendwie scheint Archive::Tar eine andere (ressourcenfressendere)
Arbeitsmethode zu benutzen als /bin/tar, weil bei /bin/tar tritt
_dieses_ Problem nicht auf.

Meine vorherige "Lösung" mit /bin/tar sah übrigens im Prinzip so
aus:

$stdErr = qx{tar -c -z -f "/tmp/backup.tgz" datei1.txt datei2.txt
datei3.txt 2>&1 1>/dev/null};

Wenn man File::Find über mehrere Verzeichnisse iterieren läßt
und pro Verzeichnis eine Datei backup.tgz generieren läßt,
funktioniert /bin/tar nur dann zuverlässig, wenn ich eine Pause
(sleep) von 2-3 Sekunden zwischen einzelnen qx-Befehlen
(Verzeichnissen) einbaue. (Ansonsten wird ohne Fehlermeldung einfach
die ein oder andere Datei backup.tgz ausgelassen.)
Daher vermute ich vielleicht die etwas zu langsame Festplatte als
Fehlerursache?

Hmm, ich probiere gleich mal aus ob es mit Archive::Tar geht wenn
ich (viel) mehr Swap zur Verfügung stelle. Immerhin hätte ich dann
eine Gewißheit, daß es an der Speichergröße liegt bzw. an den
Speicheranforderungen von Archive::Tar. (Ist auf jeden Fall
ärgerlich.)

LG,
Ralph



-- 
Um die Liste abzubestellen, schicken Sie eine Mail an:
    [email protected]
Um eine Liste aller verfügbaren Kommandos zu bekommen, schicken
Sie eine Mail an: [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.