|
Passiamo ad analizzare il programma.
La struttura della routine principale è molto semplice, come
si vede nel seguente listato:
$LOG_FILE='/var/log/httpd/access_log';
$LogFile = $LOG_FILE;
$Begin=0;
$End=99999999;
$Url = $NUrl = $Site = $NSite = '';
%StatUrlCount = %StatUrlTot = ();
%StatReqCount = %StatReqTot = ();
&Main(&GetParam);
exit(0);
sub Main {
&ParseParam(@_);
&AnalizeLog;
&PrintexResults;
}
si leggono i parametri (ParseParam), poi si analizza il file
di log (AnalizeLog) e infine si stampano i risultati
(PrintexResults). I parametri vengono memorizzati in variabili
globali: il nome del file di log in $LogFile, le date di
inizio e di fine del periodo da analizzare in $Begin e $End,
le URL e i siti da considerare o da escludere in $Url, $NUrl,
$Site, $NSite. I risultati delle statistiche vengono
raccolti utilizzando gli array associativi %StatUrlCount,
%StatUrlTot, %StatReqCount, %StatReqTot.
Le date sono memorizzate in un
formato che rende facile la comparazione: un numero di 8 cifre dove
le prime quattro sono l’anno, le successive due sono il mese e
infine le ultime due il giorno. Per esempio il 9 luglio 1968
corrisponde alla cifra 19680709. Anche se non c’è una
corrispondenza uno a uno tra cifre e date, comunque a date maggiori
corrispondono cifre maggiori ed è possibile compararle ed è
semplice ricavare la cifra dalla data, che è tutto ciò
che ci serve.
|