1263314279.013 671 192.168.1.195 TCP_MISS/200 ...
Aí vem a pergunta: como eu sei que data/horário foi feito esse acesso, em linguagem mais acessível?
Esse formato é o timestamp unix que é simplesmente um contador que teve seu valor zero associado com a data 01/01/1970 00:00:00UTC, e que é incrementado a cada segundo. Quem viveu o bug do milênio, vai se deparar com algo parecido em 2038, pois esse formato trata-se de um inteiro sinalizado de 32 bits (signed int32), que atingirá seu limite no ano citado. Após isso, o calendário voltaria para 13/12/1901 20:45:52 UTC (uau!). A solução seria portar as aplicações para utilizar um inteiro sinalizado de 64 bits (signed int64) o que dá uma folga de uns 290 bilhões de anos! :D
Voltando ao nosso assunto, para fazer uma conversão durante a leitura dos logs, podemos utilizar um simples script em perl que é descrito abaixo:
#!/usr/bin/perl -p
s/^\d+\.\d+/localtime $&/e;
Salve o arquivo, dê permissão de execução ao script (que eu chamei de timeconvert.pl)
chmod +x timeconvert.pl
Agora redirecione a saída do log para este script, da seguinte forma (estou assumindo que o script está no seu diretório atual, caso contrário, especifique o caminho completo):
cat /var/log/squid/access.log | ./timeconvert.pl
A saída deverá ser a seguinte:
Tue Jan 12 11:37:59 2010 671 192.168.1.195 TCP_MISS/200 ...
Com certeza, muito melhor de visualizar e analisar.
Mais informações:
http://pt.wikipedia.org/wiki/Era_Unix
http://en.wikipedia.org/wiki/Unix_time