shell-script-pt
[Top][All Lists]
Advanced

[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]
>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]