Als Administrator ist es wichtig, die Logs seiner Systeme zu sichten und auf Unregelmäßigkeiten zu überprüfen. Dies geht besonders gut mit Anwendungen wie cat, less oder more. Damit allerdings die Logs nicht zu groß werden, greift bei vielen Systemen logrotate ein und archiviert (für einen vorgegebene Zeitraum) alte Logs in einem bestimmten Zyklus. Werden diese alten Logs jedoch komprimiert, wird das spätere Begutachten scheinbar schwieriger, da die Dateien nun .gz-komprimiert sind. Die Archive müssten erst entpackt werden, um sie zu lesen.
Diesen Zwischenschritt sparen die Tools zcat, zless, zmore, zdiff und zgrep effizient ein. Sie arbeiten größtenteils genau so wie Ihre Pendants, sind jedoch für .gz-Dateien gedacht.
Als Beispiel nehme ich die access.log-Datei vom Apache. Wenn ich das aktuelle Log betrachten möchte, hilft hierzu mitunter folgendes Kommando:
cat /var/log/apache2/access.log
Ist das gewünschte Log im GZ-Format komprimiert, bietet sich zcat an. Allerdings sind erfahrungsgemäß besonders die Accesslogs sehr lang und eignen sich besonders wenig, um sie mit cat zu öffnen. Die Werkzeuge more oder die Erweiterung less sind eher dafür konzipiert. Mit dem vorangestellten „z“ können sie dann auch für komprimierte Dateien eingesetzt werden.
zcat /var/log/apache2/access.log.2.gz zless /var/log/apache2/access.log.2.gz
Aber auch dann sind die meisten Logs ziemlich undurchsichtig. Für die Suche nach bestimmten Begriffen oder Mustern hilft bekanntermaßen grep. Man nutzt nun entweder zgrep oder leitet den stdout, also den Ausgabestrom, zum „normalen“ grep um.
zgrep -e '127.0.0.1' /var/log/apache2/access.log.2.gz zcat /var/log/apache2/access.log.2.gz | grep '127.0.0.1'
Natürlich kann man nun beliebig durch Pipes weiter filtern, um ein brauchbares Endergebnis zu erhalten. Möchte man zwei komprimierte Dateien vergleichen, kommt zdiff zum Einsatz.
zdiff -y file1.txt.gz file2.txt.gz
Die Option -y sorgt für eine Gegenüberstellung („side by side“).
Admins müssen sich nicht vor komprimierten Logdateien scheuen. Sind die Werkzeuge, die größtenteils aus dem gzip-Paket stammen und an Board der meisten Distributionen sind, installiert, wird der Umgang mit komprimierten Logs vereinfacht.