Rielaborare i log con awstats
Awstats normalmente viene utilizzato all’interno di un chron job in modo da aggiornare periodicamente il database dei log del web server secondo un determinato file di configurazione (/etc/awstats/qualcosa.conf).
Durante il processo di aggiornamento awstats salta i record più vecchi di quelli già elaborati indipendentemente da altre condizioni.
Può capitare, invece, di voler creare nuove elaborazioni in funzioni di modifiche fatte al file di configurazione o anche di un nuovo file di configurazione.
Lo scenario più comune è quello in cui solo gli ultimi due log sono disponibili (tipicamente in /var/log/apache2) mentre gli altri, a causa della periodica rotazione, continuano ad essere presenti nella medesima directory ma in formato compresso gzip.
Per poter rielaborare tutti i log, quindi, è necessario scompattare tali file e riprocessarli in ordine temporale inverso, ossia dal più vecchio al più nuovo.
Ecco gli step da seguire, una volta che si siano già effettuate tutte le necessarie modifiche al file di configurazione di awstats che, per semplicità, chiameremo sublogic.conf.
- Creare una directory temporanea
- Copiare i file *.gz che interessano in tale directory, lasciando inalterati data e ora.
- Scompattare tali file
- Chiamare awstats per ciascuno di tali file in ordine temporale inverso
Dal punto di vista del codice questo si trasforma in
#Creazione directory temporanea
$ cd /tmp
$ mkdir log
$ cd /tmp/log
#Copia dei file (utilizzare il nome dei propri log)
$ cp -p /var/log/apache2/log.*.gz .
#Scompattare i file log
$ gunzip -v cafp.log.*.gz
# Eliminare prima i database di awstats relativi alla configurazione corrente nel caso
# ne esistano
$ sudo rm /var/lib/awstats/awstats*.sublogic.txt
#Qui sta il trucco per l'elaborazoine in ordine temporale inverso.
# Il compando seguente visualizza il contenuto della directory in ordine inverso e
# passa ogni singolo file al comando xargs che a sua volta esegue awstats
# con il file in questione come argomento 'LogFile='
$ ls -tr | xargs -t -n1 -I'{}' sudo -u root /usr/bin/perl /usr/lib/cgi-bin/awstats.pl -update -config=concorso -LogFile='{}'
Resta aggiornato abbonandoti al feed RSS 2.0. Puoi lasciare un commento oppure inviare un trackback dal tuo sito.