[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Logfiles splitten, Tool gesucht


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 nachtraeglich splitten, fuer 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 fuer 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 enthaelt (z. B.
27/May/2012). Notfalls musst die das Log vorher zumindest in die Jahre
aufteilen.
Fuer ein Jahr (acccess_2011.log) wuerde 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

Gruss 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/