logs.pl [ --verbose ... | --no_verbose ]
[ --timestamp TIMESTAMP ] [ --srcdir SRCDIR ]
[ --datadir DATADIR ] [ --openin OPENIN ] [ --newlogs NEWLOGS ] [ --logsflt LOGSFLT ]
[ --openout OPENOUT ] [ --finished FINISHED ] [ --detailed DETAILED ]
[ --timeout TIMEOUT ] [ --own OWN ]
[ --storyidflt STORYIDFLT ] [ --imageflt IMAGEFLT ] [ --langflt LANGFLT ]
[ --exclua EXCLUA ] | [ --ownmark OWNMARK ]... [ --docroot DOCROOT ] [ --storyflt STORYFLT ]
--helpGibt eine kurze Hilfe aus
--versionGibt kurze Hinweise zum Programm und die Version aus.
--verboseErhöht den Umfang der Meldungen nach STDERR.
--no_verboseUnterdrückt die Ausgabe von Meldungen. Die Optionen --verbose und --no_verbose werden der Reihe nach ausgewertet.
--timestamp TIMESTAMPTIMESTAMP wird für den Platzhalter ${timestamp} in den Werten NEWLOGS, OPENIN, OPENOUT, FINISHED und DETAILED eingesetzt.
--srcdir SRCDIRIm Verzeichnis SRCDIR wirden die Datei visits_in.xslt erwartet. Diese Transformation gibt die Daten der offenen Besuche aus der Datei OPENIN in dem unten beschriebenen zeilenorientierten Textformat aus.
--datadir DATADIRDATADIR wird für den Platzhalter ${datadir} in den Werten OPENIN, NEWLOGS, OPENOUT, FINISHED und DETAILED eingesetzt.
--openin OPENINOPENIN ist die Datei mit den Daten der offenen Besuche. Sie wird vor den Log-Dateien gelesen. Die Transformation visits_in.xslt gibt die Daten der offenen Besuche im unten beschriebenen Textformat an dieses Programm.
--newlogs NEWLOGSIm Verzeichnis NEWLOGS liegen die Access-Log-Dateien, die ausgewertet werden, nachdem die Daten der offenen Besuche (OPENIN) gelesen worden sind. Die Log-Dateien sind gzip-komprimiert und enhalten die Daten im „Combined Log Format” oder einer Erweiterung dieses Formats. NEWLOGS kann die Platzhalter ${timestamp} und ${datadir} enthalten.
--logsflt LOGSFLTNur Dateien im Verzeichnis NEWLOGS, deren Name dem regulären Ausdruck LOGSFLT entspricht, werden als Access-Log-Dateien ausgewertet.
--openout OPENOUTOPENOUT ist die XML-Ausgabedatei der Besuche, die nach der Auswertung der letzten Access-Log-Datei offen sind. OPENOUT nutzt wie die anderen XML-Ausgabedateien den Namensraum http://herbaer.de/xmlns/20170605/visits/ (s. visits.rng). OPENOUT kann die Platzhalter ${timestamp} und ${datadir} enthalten.
--finished FINISHEDFINISHED ist die XML-Ausgabedatei mit zusammengefassten Daten der abgeschlossenen Besuche (Zahlen der Besuche aufgeschlüsselt nach Bilder, Bildgeschichten und Sprachen). FINISHED kann die Platzhalter ${timestamp} und ${datadir} enthalten.
--detailed DETAILEDDETAILED ist die XML-Ausgabedatei mit den Details der abgeschlossenen Besuche. DETAILED kann die Platzhalter ${timestamp} und ${datadir} enthalten.
--timeout TIMEOUTEin Besuch gilt als abgeschlossen, wenn TIMEOUT Sekunden lang kein Zugriff von der IP-Adresse mit der passenden Browser-Kennung erfolgt ist.
--own OWNDer reguläre Ausdruck OWN kennzeichnet die („geheimen”) URL-Pfade, die belegen, dass ich selbst der Besucher bin.
--storyidflt STORYIDFLTWenn ein angefragter URL-Pfad dem regulären Ausdruck STORYIDFLT entrspricht, zählt eine Bildergeschichte als besucht (vorausgesetzt, der Besuch gilt als „echter” Besuch). Die erste Gruppe des regulären Ausdrucks Eliefert die Kennung der besuchten Bildergeschichte.
--imageflt IMAGEFLTEin angefragter URL-Pfad, der dem regulären Ausdruck IMAGEFLT entspricht, bedeutet, dass ein Bild angefragt worden ist. Die erste Gruppe liefert die Kennung der Bildergeschichte, zu der das Bild gehört, die zweite Gruppe den Dateinamen des Bildes ohne Suffix.
--langflt LANGFLTEin angefragter URL-Pfad, der dem regulären Ausdruck LANGFLT entspricht, bedeutet, dass eine bestimmt Sprache angefragt worden ist. Die erste Gruppe liefert die Kennung der Sprache.
--exclua EXCLUAEin Besuch durch einen „user agent”, der dem regulären Ausdruck EXCLUA entspricht, zählt nicht. Ich will so Besuche durch Suchmaschinen und Automaten („Bots”) ausschließen.
--ownmark OWNMARKDie Zeichenkette OWNMARK im User-Agent-String kennzeichnet eigene Besuche (Selbstbesuche). Möglicherweise ist diese Markierung bei Unter-Requests nicht im User-Agent-String enthalten. Deshalb wird OWNMARK aus dem User-Agent-String entfernt und der Zugriff normal ausgewertet. Der Besuch wird aber als „Selbstbesuch” gekennzeichnet.
--docroot DOCROOTIn der Aufschlüsselung der Besuche nach Bildergeschichten sollen auch die Bildergeschichten erscheinen, die noch gar nicht besucht sind. Um diese Bildergeschichten zu finden, wird das Webserver-Dokumenten-Verzeichnis DOCROOT durchsucht.
--storyflt STORYFLTDer reguläre Ausdruck STORYFLT beschreibt die Unterverzeichnisse von DOCROOT, die eine Bildergeschichte enthalten. Die erste Gruppe liefert die Kennung der Bildergeschichte.
Die Transformation visits_in.xslt gibt die Daten der offenen Besuche (s. visits.rng) in einem zeilenorientierten Textformat an dieses Programm. Die Daten eines Besuchs werden im folgenden Format übergeben:
IP (Adresse) AGENT (Browser) FIRST (Zeit) LAST (Zeit) TRFIN (Zahl) TRFOUT (Zahl) REQTIME (Zahl) FILE (Dateipfad) (Anzahl) ... STORY (StoryID) (Anzahl) ... IMAGE (StoryID)/(BildID) (Anzahl) ... LANG (Sprachkennung) ... OWNSITE (Anzahl)
Jede IP-Zeile leitet die Daten eines neuen Besuchs ein. Die Zeilen IP, AGENT, FIRST und LAST sind für jeden Besuch erforderlich, alle anderen Zeilen sind optional. Jede Zeile, der eine Zeile "..." folgt, kann beliebig oft vorkommen. Die Reihenfolge der Zeilen nach der IP-Zeile ist beliebig.
Dieses Programm liest die Daten der offenen Besuche (OPENIN) und wertet Access-Log-Dateien (NEWLOGS) aus. Es erstellt die drei XML-Dateien OPENOUT, FINISHED und DETAILED.
Das Programm ist mit Perl Version 5.10.1 entwickelt. Es benutzt die folgenden Module:
File::Spec::FunctionsHier wird die Funktion catfile benutzt.
IO::Uncompress::GunzipDient zum Lesen der gzip-komprimierten Access-Log-Dateien.
HTTP::DateDie Funktion str2time interpretiert die Zeitdaten.
Herbaer::ReadargsDie Funktion read_args aus diesem Modul verarbeitet die Befehlszeilenargumente, die Funktion print_message_with_values gibt die Hilfe mit den aktuellen Einstellungen aus.
Herbaer::ReplaceDie Funktion replace aus diesem Modul ersetzt die Platzhalter in den Datei- und Verzeichnisnamen in der Befehlszeile.
Herbaer::XMLDataWriterAusgabe der Hash-Daten im XML-Format.