*.gz unzippen und in eine Datei pipen

Wolfsbein

Erfahrenes Mitglied
Hallo

ich nutze awstats unter MacSS X (Darwin). In der Configdatei ist eine Direktive LogFile der ich z.B. eine gz Datei unterschieben kann:
LogFile = "gzip -d </var/log/apache/access.log.gz |"
Nur bekomme ich von meinem Hoster fuer jeden Tag ein gz File. Da ich kein Experte auf der Konsole bin, ist mir nur das:
"gzip -d </bla/blub/dateien/*.gz |"
eingefallen. Nur geht das nicht. Ich muesste also alle Dateien entpacken und dann zu einer grossen zusammenfuegen. Nur wie mache ich das? Danke.
EDIT:
gunzip < *.gz > ziel_dateiname
Das erzeugt bei mir einen ambigous redirect Fehler.
 
Hi.

Probier mal
Code:
gzip -dc /bla/blub/dateien/*.gz |

Die Option -c führt dazu das gzip alle dekomprimierten Daten auf der Standardausgabe ausgibt.

Gruß
 
Das ist es noch nicht ganz. Ich will die Dateien nicht immer von stdin lesen, da das awstats beeintraechtigt, wenn es Inhalte einer Datei schon kennen koennte. Daher habe ich jetzt mal mit
gzip -dc *.gz > temp.txt
alles in eine Datei umgeleitet.
Nur kann ich das noch nicht direkt fuer LogFile verwenden. Da muesste sowas wie
LogFile = "gzip -dc *.gz > temp.txt < |"
her. Habe auch schon
LogFile = "gzip -dc *.gz > temp.txt; cat temp.txt |"
versucht, aber ohne Erfolg.
 
Also irgendwie versteh' ich nicht ganz was du vorhast. Das erst in eine Temp-Datei zu schreiben ist unsinnig wenn du nachher doch alles wieder von der Datei liest und auf die Standardausgabe schreibst...

Was soll denn dabei rauskommen? Also was genau willst du erreichen?

Gruß
 
Ich denke nicht, dass awstats von stdin liest? Es kann sich ja irgendwie merken was bereits schon einmal geparst wurde. Vielleicht sehe ich das aber auch falsch.
Erreichen will ich, dass das was ich jetzt erst manuell auf der Konsole mache in die Konfiguration von awstats kommt. Und zwar so, dass es auch funktioniert. Aber da frage ich wohl in einem spezial awstats Forum nach und poste dann hier.
 
Wolfsbein hat gesagt.:
Ich denke nicht, dass awstats von stdin liest?
Was meinst du wohl was
Code:
LogFile = "gzip -cd *.gz |"
macht? awstats führt das Kommando aus und liest die Daten die gzip auf die Standardausgabe geschrieben hat von der Standardeingabe (via Pipe) und fertig. Das vorher noch extra in eine Datei zu schreiben ist meiner Meinung nach unsinnig.

Gruß

/edit: Übrigens, wenn täglich ein Logfile erstellt wird wäre es evtl. besser sowas
Code:
LogFile="gzip -cd ../logs/access_log_%YYYY-24-%MM-24-%DD-24.gz |"
in die Konfig-Datei zu schreiben und nicht immer alle Dateien zu lesen.
 
Zuletzt bearbeitet:
Wahrscheinlich weil das glob-Pattern nicht expandiert wird oder die Log-Dateien nicht im richtigen Pfad sind.

Gibt's denn keine Fehlermeldung?

Gruß
 
Zurück