Dies ist der Befehl „splitlog“, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
splitlog – Aufgeteilte WWW-Server-Zugriffsprotokolldateien (httpd).
ZUSAMMENFASSUNG
Splitlog [-f Konfigurationsdatei] [Optionen...] [--]
[ Logdatei | + | - ] ...
BESCHREIBUNG
Splitlog liest eine Folge von httpd access_log-Dateien im Common Logfile Format (CLF) und/oder die
Standardeingabe und teilt die Protokolldateieinträge entsprechend den Einträgen in separate Dateien auf
angeforderte URL oder virtuelles Host-Präfix.
Splitlog soll vom Webmaster in regelmäßigen Abständen als Mittel zur Bereitstellung ausgeführt werden
individuelle Protokolldateien für jeden Kunden eines Servers, da dies weniger effizient ist
Der Server selbst generiert mehrere Protokolldateien. Splitlog nimmt keine Änderungen vor
die Eingabedatei und kann so konfiguriert werden, dass die geteilten Dateien in ein beliebiges Verzeichnis geschrieben werden. Von
Standardmäßig wird eine zwischengespeicherte DNS-Suche für alle IP-Adressen durchgeführt, die im nicht aufgelöst sind
Eingabedatei. Bei Bedenken können die Protokolleinträge auch anonymisiert werden
die Privatsphäre der Kunden einfordern.
Splitlog ist eine perl Skript, was bedeutet, dass Sie ein perl Interpreter zum Ausführen des
Programm. Es wurde mit getestet perl Versionen 4.036 und 5.002.
OPTIONAL
Konfiguration Optionen
Diese Optionen definieren, wie Splitlog sollte Standardeinstellungen festlegen und den Befehl interpretieren.
Linie.
-f Dateinamen
Rufen Sie die Konfigurationsstandardwerte aus der angegebenen Datei ab. Falls verwendet, dies sollen sei der
erstes Argument in der Befehlszeile, da es vor dem interpretiert werden muss
andere Befehlsoptionen. Die Datei splitlog.rc ist in der Distribution enthalten als
ein Beispiel dieser Datei; es beinhaltet perl Quellcode, der das direkt festlegt
Steuerungs- und Anzeigemöglichkeiten von Splitlog und enthält eine Funktion für
Ändern des Namensauswahlalgorithmus für geteilte Protokolldateien. Wenn Dateinamen ist kein
Pfadname, der Include-Pfad (siehe DATEIEN) wird gesucht Dateinamen. Eine leere Zeichenfolge
as Dateinamen wird diese Funktion deaktivieren. [-f „splitlog.rc“]
-- Letzte Option (die restlichen Argumente werden als Eingabedateien behandelt).
Diagnostisch Optionen
Diese Optionen bieten Informationen über Splitlog Verwendung oder über einige ungewöhnliche Aspekte von
die Protokolldatei(en), die verarbeitet werden.
-h Hilfe – Nutzungsinformationen in STDERR anzeigen und dann beenden.
-e Zeigt alle ungültigen Protokolleinträge in STDERR an. Es kann zu ungültigen Protokolleinträgen kommen, wenn die
Der Server schreibt sein eigenes Protokoll falsch oder überschreibt es, wenn die Anforderung von einem fehlerhaften Benutzer erfolgt
Client oder Proxy, oder wenn ein böswilliger Angreifer versucht, sich privilegierten Zugriff zu verschaffen
dein System.
Prozess Optionen
Diese Optionen ändern, wie und wo Protokolldateieinträge geschrieben werden.
-x Verwerfen Sie alle Protokolldateieinträge ohne Dateinamenschlüssel, anstatt sie in einem zu platzieren
spezielle OTHERS.log.
-v Verwenden Sie ein Präfix der Eingabedateieinträge (am Ende des ersten „:“ oder Leerzeichens) für
Auswahl des Ausgabedateinamens anstelle oder zusätzlich zum URL-Pfad. Der
Am wahrscheinlichsten wird ein solches Präfix für den angeforderten virtuellen Host verwendet.
ist Verzeichnis
Platzieren Sie die Ausgabeprotokolldateien im angegebenen Verzeichnis statt im aktuellen Arbeitsverzeichnis
Verzeichnis.
-anon iMU
Anonymisieren Sie die Protokolldateieinträge, bevor Sie sie in geteilte Protokolle schreiben. Der Wert ist etwas
Kombination der Buchstaben „i“ (Identfeld wird entfernt), „m“ (Maschinenname ist
durch ANON oder 0 ersetzt) und „u“ (Authentifizierungs-Benutzer-ID-Feld wird entfernt).
-dns
-nickt Tun (-dns) oder nicht (-nickt) Verwenden Sie die Hostnamen-Suchfunktionen des Systems, um den zu finden
DNS-Hostname, der allen nicht aufgelösten IP-Adressen zugeordnet ist. Möglicherweise wird nach einem DNS-Namen gesucht
be sehr langsam, insbesondere wenn die Ergebnisse negativ sind (kein DNS-Name), was der Fall ist
warum auch eine Caching-Funktion enthalten ist. [-dns]
-Zwischenspeicher Dateinamen
Verwenden Sie die angegebene DBM-Datenbank als persistenten Lese-/Schreib-DNS-Cache (die .dir- und
.pag-Erweiterungen werden automatisch angehängt). Zwischengespeicherte Einträge (einschließlich negativer
Ergebnisse) werden nach der für $DNSexpires konfigurierten Zeit [zwei Monate] entfernt. NEIN
Caching wird durchgeführt, wenn Dateinamen ist die leere Zeichenfolge, die möglicherweise benötigt wird, wenn Sie
Das System unterstützt keine DBM- oder NDBM-Funktionalität. Läuft -dns ohne
Persistenter Cache wird nicht empfohlen. [-Zwischenspeicher „dnscache“]
Suche Optionen
Diese Optionen dienen dazu, Protokolldateieinträge entsprechend in die Ausgabe einzuschließen oder auszuschließen
davon, ob sie einem bestimmten Muster entsprechen oder nicht. Das Muster wird in Form eines geliefert
perl regulär Ausdruck, außer dass die Zeichen „+“ und „.“ werden automatisch maskiert
es sei denn, die -kein Entkommen Option gegeben ist. Schließen Sie das Muster in einfache Anführungszeichen ein, um das zu verhindern
verhindert, dass die Befehlsshell einige Sonderzeichen interpretiert. Mehrere Vorkommen desselben
Die Option führt zu einer ODER-Verknüpfung der regulären Ausdrücke.
-a regexp
-A regexp
Enthalten (-a) oder ausschließen (-A) alle Anfragen, die eine Übereinstimmung zwischen Hostname und IP-Adresse enthalten
der angegebene reguläre Perl-Ausdruck.
-c regexp
-C regexp
Enthalten (-c) oder ausschließen (-C) alle Anfragen, die zu einem führen HTTP Statuscode-Übereinstimmung
der angegebene reguläre Perl-Ausdruck.
-d regexp
-D regexp
Enthalten (-d) oder ausschließen (-D) alle Anfragen, die an einem Datum erfolgen (z. B. „02. Februar 1994“)
passend zum angegebenen regulären Perl-Ausdruck.
-t regexp
-T regexp
Enthalten (-t) oder ausschließen (-T) alle Anfragen, die während der Stunde auftreten (z. B. „23“)
11:12 - XNUMX:XNUMX Uhr), der mit dem angegebenen regulären Perl-Ausdruck übereinstimmt.
-m regexp
-M regexp
Enthalten (-m) oder ausschließen (-M) alle Anfragen, die eine HTTP-Methode verwenden (z. B. „HEAD“)
passend zum angegebenen regulären Perl-Ausdruck.
-n regexp
-N regexp
Enthalten (-n) oder ausschließen (-N) alle Anfragen an eine URL (Archivname), die mit dem übereinstimmt
gegebener regulärer Perl-Ausdruck.
-kein Entkommen
Escapen Sie die Sonderzeichen („+“ und „.“) in den übrigen Suchoptionen nicht mit Escapezeichen.
SPEISUNG
Nach dem Parsen der Optionen werden die verbleibenden Argumente in der Befehlszeile als behandelt
Eingabeargumente und werden in der angegebenen Reihenfolge gelesen. Wenn keine Eingabeargumente angegeben sind, wird die
konfigurierte Standard-Logdatei wird gelesen [+].
- Von der Standardeingabe (STDIN) lesen.
+ Lesen Sie die Standardprotokolldatei. [wie konfiguriert]
Logdatei...
Lesen Sie die angegebene Protokolldatei. Wenn die LogdateiDie Erweiterung zeigt an, dass es komprimiert ist
(gz|z|Z) und leiten Sie es dann durch das konfigurierte Dekomprimierungsprogramm weiter [gunzip -c]
zuerst.
ANWENDUNG
In den meisten Fällen, Splitlog wird in regelmäßigen Abständen von einem Wrapper-Programm als ausgeführt crontab Eintrag
kurz nach Mitternacht, normalerweise in Verbindung mit der Rotation der aktuellen Protokolldatei. Der
-D heute Mit dieser Option kann die Hauptprotokolldatei täglich ohne Rotation aufgeteilt werden.
Alle Befehlszeilenoptionen und einige Optionen, die im nicht verfügbar sind
Befehlszeile, kann in der Benutzerkonfigurationsdatei geändert werden (siehe splitlog.rc). Dies
Datei ist eigentlich eine perl Bibliotheksmodul, das als Teil des Programms ausgeführt wird
Initialisierung. Das mit der Distribution bereitgestellte Beispiel enthält vollständige
Dokumentation darüber, welche Variablen eingestellt werden können und welchen Wertebereich sie haben. Wenn die Standardeinstellung
Der Algorithmus zur Auswahl des Namens der geteilten Protokolldatei ist nicht erwünscht, oder wenn ein Satz von Namen vorhanden ist
sollte in einer einzigen Datei zusammengefasst werden, dann entkommentieren Sie die Funktion user_path_map() und
Definieren Sie Ihren eigenen Namensauswahlalgorithmus.
Die wwwstat Mit dem Programm können die resultierenden Logfiles analysiert werden. Sehen wwwstat für eine
Beschreibung des gängigen Protokolldateiformats.
Perl Normale Ausdrücke
Die Suchoptionen und viele der Konfigurationsdateieinstellungen ermöglichen die vollständige Nutzung von Perl
reguläre Ausdrücke (mit der Ausnahme, dass die Optionen -a, -A, -n und -N „+“ und „+“ behandeln
'.' Zeichen wie normale alphabetische Zeichen, sofern ihnen nicht das vorangestellt ist -kein Entkommen
Möglichkeit). Die meisten Menschen müssen nur die folgenden Sonderzeichen kennen:
^ am Anfang des Musters, bedeutet „beginnt mit dem Muster“.
$ am Ende des Musters bedeutet „endet mit dem Muster“.
(...) gruppiert Musterelemente als ein einzelnes Element.
? stimmt mit dem vorhergehenden Element null oder einmal überein.
* stimmt mit dem vorhergehenden Element null oder mehrmals überein.
+ Entspricht dem vorhergehenden Element einmal oder mehrmals.
. entspricht jedem einzelnen Zeichen.
[...] bezeichnet eine Klasse von Zeichen, die übereinstimmen sollen. [^...] negiert die Klasse. Innerhalb einer Klasse,
„-“ gibt einen Zeichenbereich an.
(A|B|C) stimmt überein, wenn A oder B oder C übereinstimmt.
Abhängig von Ihrer Befehlsshell müssen einige Sonderzeichen möglicherweise mit Escapezeichen versehen werden
Befehlszeile eingeben oder in einfache Anführungszeichen setzen, um eine Shell-Interpretation zu vermeiden.
HOME Speicherort des Home-Verzeichnisses des Benutzers, platziert im INC-Pfad.
LOGDIR Wird anstelle von HOME verwendet, wenn letzteres nicht definiert ist.
PERLLIB Eine durch Doppelpunkte getrennte Liste von Verzeichnissen, in denen nach dem Benutzer gesucht werden soll
Konfigurationsdatei.
Nutzen Sie Splitlog online über die Dienste von onworks.net