Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Extreme Multimidia
Por davi182
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Scripts

Linux user

Publicado por Gleisson Marin Bissa em 22/03/2007    [ 8474 hits ]

Login: gleissonmb, 127075 pontos

Homepage: http://www.gleisson.com.br   


Descrição

Este script varre diariamente o log do squid, procurando acessos à internet e seus respectivos usuários, enviando para os mesmos e para a gerência um e-mail contendo o nome do usuário, as URL's que ele acessou e o IP/IP's das estações que ele usou.

Basta colocá-lo no cron para rodar de preferência à noite.

[ Download: teller.mail.temp ]   [ Enviar nova versão ]

[ Esconder código-fonte ]

#!/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

Scripts recomendados
   Script Linux recomendado Envia e-mail notificando configurações de uma máquina
   Script Linux recomendado abelhudo
   Script Linux recomendado PARPM - Procura de Arquivos em Pacotes Rpm
   Script Linux recomendado Monta Pen-Drive Windows no Linux
   Script Linux recomendado Monitor_espaco.sh

Comentários
[1] Comentário enviado por aprendiz_ce em 23/03/2007 - 12:13h:

Gleisson,

Não testei o seu script, mas achei a proposta do mesmo muito interessante. Assim que possível, foi coloca-lo para funcionar.

Obrigado pela atenção e parabéns pelo seu script.

[2] Comentário enviado por xcoastbr em 23/10/2008 - 18:39h:

Gleisson,

Muito boa a ideia mas testando aqui ele nao funciona os parametros da data parecem invalidos pois ele retorna 23\Oct e nao acha entrada no access.log.

quando retira a variavel de data ele funciona normal.

Obrigado pela atenção e parabéns pelo seu script.

[3] Comentário enviado por gleissonmb em 24/10/2008 - 08:21h:

A variavel dia_cur refere-se ao dia em que o log será varrido. Como rodo esse script diariamente no crontab ela serve para filtrar o dia, caso ela nao existisse, o log seria acumulativo.

Veja no log do squid como comando:
tailf /var/log/squid/access.log, se a data está em Inglês ou Portugues, isso faz toda direfenca.
Ex do meu access.log:
xx.xx.xx.xx - - [24/Oct/2008:08:18:55 -0200] "CONNECT bradesconetempresa.com.br:443 HTTP/1.0" 200 6462 TCP_MISS:DIRECT

dia_cur=$(LC_ALL=C date "+%d/%b")

Ou tente remover o parametro LC_ALL=C da linha da variável.




Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.