Valentin Wirth: xyz.log.gz Decomprimieren

Hallo,

Kann mir jemand verraten wie ich .gz Datein mit Perl entpacken kann. Dafür werde ich ja bestimmt ein Modull zu Rate ziehen müssen. Gefunden habe ich was für gZip -  ist das das gleiche wie .gz Datein? Währe dafür Compress::Zlib gut? Wie entpackt ihr eure LogFiles?

mfg Valentin

  1. Hi Valentin,

    Wie entpackt ihr eure LogFiles?

    gar nicht. Der Webalizer kann gzip-komprimierte logs direkt lesen.

    Viele Grüße
          Michael

    --
    T'Pol: I apologize if I acted inappropriately.
    V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
    (sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
     => http://www.peter.in-berlin.de/projekte/selfcode/?code=sh%3A|+fo%3A}+ch%3A]+rl%3A(+br%3A^+n4%3A(+ie%3A%25+mo%3A)+va%3A|+de%3A%2F+zu%3A|+fl%3A(+ss%3A)+ls%3A~+js%3A|
    Auch diese Signatur wird an korrekt konfigurierte Browser gzip-komprimiert übertragen.
    1. gar nicht. Der Webalizer kann gzip-komprimierte logs direkt lesen.

      Haha will sie aber selbst weiterverarbeiten da mir ein paar Dinge in den Meisten Tools fehlen.

      1. Hi Valentin Wirth,

        Haha will sie aber selbst weiterverarbeiten da mir ein paar Dinge in den Meisten Tools fehlen.

        Was hältst Du von

        gzip -d <dateiname> | auswertungsprogramm.pl

        ?

        Ich sehe keinen Sinn darin, existierende Betriebssysteme nachzuprogrammieren.

        Viele Grüße
              Michael

        --
        T'Pol: I apologize if I acted inappropriately.
        V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
        (sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
         => http://www.peter.in-berlin.de/projekte/selfcode/?code=sh%3A|+fo%3A}+ch%3A]+rl%3A(+br%3A^+n4%3A(+ie%3A%25+mo%3A)+va%3A|+de%3A%2F+zu%3A|+fl%3A(+ss%3A)+ls%3A~+js%3A|
        Auch diese Signatur wird an korrekt konfigurierte Browser gzip-komprimiert übertragen.
        1. Was hältst Du von

          gzip -d <dateiname> | auswertungsprogramm.pl

          Oh bitte kurz mehr dazu - wo kommt das hin und was bedeuten die einzelnen Teile?

          Ich habe ein Haufen Zipdatein die ich regelmäßig automatisiert vom Server lade und dann um Sie weiter auswerten zukönnen (Auswertungsprogramme gibts schon). Dafür brauche ich keine .log.gz Datein sondern entpackte .log Datein. Also muss das Entpacken auch automatisch gehen. Mir schwebt sowas vor wie, Datei mit gleichen Namen im Ordner nur entpackt danach zu speichern. Damit kann ich dann weiterarbeiten.

          Danke Euch Valentin

          1. Hi Valentin Wirth,

            Was hältst Du von
                gzip -d <dateiname> | auswertungsprogramm.pl
            Oh bitte kurz mehr dazu - wo kommt das hin und was bedeuten die einzelnen Teile?

            "gzip" ist ein UNIX-Programm; "-d" ist (in der mir vorliegenden Version) das Flag zum Dekomprimieren.
            "|" ist eine UNIX-pipe - sie verbindet die Ausgabe des vorherigen mit der Eingabe des nachfolgenden Programms. Das ist eine elementare UNIX-Shell-Fähigkeit.

            Ich habe ein Haufen Zipdatein die ich regelmäßig automatisiert vom Server lade und dann um Sie weiter auswerten zukönnen (Auswertungsprogramme gibts schon).

            Ich mache meine Auswertungen direkt auf dem Server (periodisch gestartet via crontab) - und deshalb kann ich die Features von dessen Shell voraussetzen.
            Ein Webspace mit Perl-Interpreter ist nicht nur für CGI-Skripte nützlich.

            Mir schwebt sowas vor wie, Datei mit gleichen Namen im Ordner nur entpackt danach zu speichern.

            Du brauchst die Datei doch gar nicht in statisch entpackter Form - Du brauchst diesen Inhalt nur während des Einlesens durch Dein Programm. Und gzip-Komprimierung macht leicht Faktor 6-10 aus ...

            Viele Grüße
                  Michael

            --
            T'Pol: I apologize if I acted inappropriately.
            V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
            (sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
             => http://www.peter.in-berlin.de/projekte/selfcode/?code=sh%3A|+fo%3A}+ch%3A]+rl%3A(+br%3A^+n4%3A(+ie%3A%25+mo%3A)+va%3A|+de%3A%2F+zu%3A|+fl%3A(+ss%3A)+ls%3A~+js%3A|
            Auch diese Signatur wird an korrekt konfigurierte Browser gzip-komprimiert übertragen.
            1. Danke erstaml so weit - das hört sich sehr spannend an.

              Ich mache meine Auswertungen direkt auf dem Server (periodisch gestartet via crontab) - und deshalb kann ich die Features von dessen Shell voraussetzen.

              Hier das Problem - ich habe auf meinem Server keine CronJobs, leider (schluchtz), dafür müsste ich fast doppelt so viel zahlen (grr Puretec). Also dachte ich mir, heute bist du schlau und preisbewusst und nutzt den Windows Task Planer meiner Arbeitsmaschine um CronTab zu simmulieren. Ja wirklich, da stand gerade Windows - leider habe ich kein Unix.

              Desweiteren arbeiten an den Scripten zwei Personen und die andere will statisch entpackt log Files. Also bin ich nicht so und sage: "ok sollst du haben - dann schalte ich ebend ein kleines Perl Toolchen dazwischen, was alles nach dem Download entpackt". So dachte ich. Daher das ganze (wenn auch nicht ganz schnelle und perfekte) Vorgehen und die Suche nach einem einfachen Perl Modul zum entpacken.

              Ich hoffe ihr schlaft jetzt noch nicht nach dieser laaaangen Geschichte und danke nochmal für die Hilfe,

              mfg Valentin

              1. Hi Valentin,

                Ja wirklich, da stand gerade Windows - leider habe ich kein Unix.

                google mal nach "gzip.exe".

                Oder lies:
                     http://www.schroepl.net/projekte/gzip_cnc/install.htm#program

                Viele Grüße
                      Michael

                --
                T'Pol: I apologize if I acted inappropriately.
                V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
                (sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
                 => http://www.peter.in-berlin.de/projekte/selfcode/?code=sh%3A|+fo%3A}+ch%3A]+rl%3A(+br%3A^+n4%3A(+ie%3A%25+mo%3A)+va%3A|+de%3A%2F+zu%3A|+fl%3A(+ss%3A)+ls%3A~+js%3A|
                Auch diese Signatur wird an korrekt konfigurierte Browser gzip-komprimiert übertragen.
  2. Moin!

    Kann mir jemand verraten wie ich .gz Datein mit Perl entpacken kann. Dafür werde ich ja bestimmt ein Modull zu Rate ziehen müssen. Gefunden habe ich was für gZip -  ist das das gleiche wie .gz Datein? Währe dafür Compress::Zlib gut? Wie entpackt ihr eure LogFiles?

    Ich entpacke meine Logfiles mit einem Shellscript, welches einfach gunzip aufruft und dann Webalizer startet.

    Ansonsten sei noch der Hinweis gestattet, dass gzip (und gunzip) es auch erlauben, die Dateiinhalte auf die Standardausgabe zu spielen. Da kann dein Auswerteskript natürlich auch ansetzen. Einfach das passende fopen() (oder wie heißt das in Perl?) mit einer Pipe aufmachen und die Daten einlesen.

    - Sven Rautenberg

    --
    ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|