Re: Logfiles splitten, Tool gesucht

Autor: Thomas Stiefel <Tom_at_vTux.de>
Datum: Sun, 27 May 2012 23:25:18 +0200
Hallo Raphael,

Am 27.05.2012 16:37, schrieb Raphael Eiselstein:
> Hallo zusammen,
>
> ich hab hier ein System gefunden (FreeBSD), bei dem es seit ca 2 Jahren
> kein Logrotate gab, d.h. irgendwelche Access-Logs sind auf ca 5Mio
> Zeilen angewachsen.
>
> Jetzt will ich die nachträglich splitten, für jeden Monat eine Datei.
>
> ...
>
> Gibt es irgendwas in der Form von Grep, was mit sowas in der Art tut:
>
> $<  inputfile $tool Pattern1 Output1 Pattern2 Output2 ...
>
> ... und das ganze so, dass das inputfile nur einmal gelesen werden muss.
>
>
sowas gibt es und das gesuchte Tool nennt sich csplit.
=> http://nixdoc.net/man-pages/FreeBSD/csplit.1.html

Ich habe das auch schon ein paar mal für genau den selben Zweck 
benutzt.  Das Tool geht die Datei einmal durch und schreibt bei jedem 
gefunden Pattern ein neues Outputfile. Wenn es Monate aus mehreren 
Jahren sind, dann muss du eben mal probieren, ob csplit das auch mit 
verschieden Pattern hinbekommt, da ja im Apache Access-Log normalerweise 
das Datum einen Slash enthält (z. B. 27/May/2012). Notfalls musst die 
das Log vorher zumindest in die Jahre aufteilen.
Für ein Jahr (acccess_2011.log) würde es aber beispielsweise so 
funktionieren:

csplit -k -f access_log_2011- acccess_2011.log /Jan/ /Feb/ /Mar/ ... /Dec/

Output:
access_log_2011-01
access_log_2011-02
...
access_log_2011-12

Gruß Tom


-- 
UUGRN e.V. http://www.uugrn.org/
http://mailman.uugrn.org/mailman/listinfo/uugrn
Wiki: https://wiki.uugrn.org/UUGRN:Mailingliste
Archiv: http://lists.uugrn.org/
Empfangen am 27.05.2012

Dieses Archiv wurde generiert von hypermail 2.2.0 : 27.05.2012 CEST