[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Cruzar access.log com outro log
From: |
gleissonmb |
Subject: |
Re: Cruzar access.log com outro log |
Date: |
Mon, 27 Aug 2007 17:21:58 -0000 |
User-agent: |
eGroups-EW/0.82 |
Veja esse script que fiz para esse mesmo fim...pode ser que ajude.
#!/bin/bash
# Script de monitoramento de log do squid.
# Faz a varredura do usuario no fim do dia, verifica seus acessos, e
manda um e-mail para o proprio usuario e sua gerencia.
# Obs.: Colocar no cron.
# Gleisson Marin Bissa
#
----------------------------------------------------------------------------
dia_cur=$(LC_ALL=C date "+%d/%b")
usuarios=(joao maria jose)
for usuario in "${usuarios[@]}" ; do
ip=$(grep "$usuario \[$dia_cur" /var/log/squid/access.log | tr
-s [' ','/'] '\t' | cut -f1 | sort |uniq)
url=$(grep "$usuario \[$dia_cur" /var/log/squid/access.log | tr
-s [' ','/'] '\t' | cut -f10 | sort |uniq)
if [ -n "$ip" ] ; then
usuariold=$usuario
## Este case e necessario apenas para adequacao do
nome do usuario de internet ao e-mail do caboco, se o nome do usuario
for diferente do e-mail.
case $usuario in
joao) usuario=expedicao ;;
maria) usuario=mariams ;;
jose) usuario=josesp
esac
domain="seudominio.com.br"
to="$usuario"
subject="relatorio diario de acessos a internet"
data=`date "+%a %d %b %Y - %k:%M:%S"`
echo -ne "Usuario: $usuariold \nData: $data
\n\nEstacoes usadas pelo usuario:\n$ip \n\nURL's:\n$url \n\nEste e um
e-mail automatico...Favor nao responder!!! Duvidas entre em contato
com o setor de TI" > /tmp/teller
mail -s "$subject" gerencia.ti@$domain
encarregado.ti@domain $to@$domain < /tmp/teller
if [ -f /tmp/teller ] ; then
rm -rf /tmp/teller
fi
fi
done
----------------------------------------------------------------------
>
> pessoal,
>
> estou usando um proxy transparente e preciso fazer um relatório de
usuário/ip/site, aconte que o nome dos usuários estão em outro log,
diferente do access.log, e preciso cruzar os dois logs.
>
> Para tirar a linha no access.log estou usando o seguinte comando.
>
> cat /var/log/squid/access.log | awk '{print $1,$2,$4,$8}' | awk
-F"/" '{print $1,$2,$3,$5}' | awk '{print $1,$2,$3,$4,$5,$7}' | sort -u
> obtenho o seguinte resultado:
> 27 08 2007 10:43:31 10.3.16.131 www.google.com.br
> 27 08 2007 10:43:43 10.3.16.92 www.netveiculos.com.br
> 27 08 2007 10:43:45 10.3.16.92 www.netveiculos.com.br
>
> Desta forma eu tenho data/Hora/Ip/Site
>
> eu preciso acrescentar mais uma coluna neste relatório, informando
o Usuario, para ficar assim:
> JOAQUIM 27 08 2007 10:43:31 10.3.16.131 www.google.com.br
> JOSE 27 08 2007 10:43:43 10.3.16.92 www.netveiculos.com.br
> JOSE 27 08 2007 10:43:45 10.3.16.92 www.netveiculos.com.br
>
> o problema é que o nome do usuário está em outro log, deste jeito:
> JOAQUIM entrou 27/08/2007 10:40:50 10.3.16.131
> JOAQUIM saiu 27/08/2007 11:08:01 10.3.16.131
>
> Além de buscar o usuário em outro log, tenho que verificar o IP e
data de entrata/saída.
>
> Futuramente vou jogar o relatório numa base mysql e assim fazer
relatórios com ele.
>
> Desde já agradeço a todos.
>
>
>
>
> Flickr agora em português. Você clica, todo mundo vê. Saiba mais.
>
> [As partes desta mensagem que não continham texto foram removidas]
>
Re: [shell-script] Cruzar access.log com outro log, Otávio Fernandes, 2007/08/27
Re: Cruzar access.log com outro log,
gleissonmb <=