Advertisement
dukercs

scanlog.sh

Oct 11th, 2011
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.83 KB | None | 0 0
  1. #!/bin/bash
  2. # Procurar por acessos nos logs
  3. # Criado por Rodolpho Costa Stach
  4. # Data: 11/10/2011
  5.  
  6. #Arquivo de log principal
  7. arquivo=/var/squid/log/acess.log
  8.  
  9. #arquivos de logs criados após rotate do squid
  10. #nessa variável ele armazena o resultado padrão do comando ls e joga qualquer erro no buraco negro ^^ /dev/null
  11. lista=$(ls /var/squid/log/acess.log.* 2> /dev/null )
  12.  
  13. #esse separador eu fiz pq precisei fazer um arquivo separado por ponto e vírgula pra depois ser importado para o excel
  14. #Assim basta trocar o \\t que é um TAB para qualquer outra coisa
  15. separador="\\t"
  16.  
  17. #aqui é a faixa de IP's que eu não quero ver, no meu caso é pq são de acesso livre então nao preciso ver
  18. #esse [0-5] é uma lista indica que no último octeto posso ter 40 41 42 43 44 45
  19. excluidos="192.168.1.4[0-5]"
  20.  
  21.  
  22. #Testa se não foi informado algum parâmetro para busca
  23. if [ -z "$1" ]; then
  24. #exibe mensagem de erro
  25.     echo -e "\e[41;37;1m Erro:"
  26.     echo -e "\e[40;37;1mNenhum padrão informado para a pesquisa"
  27.     echo -e "\e[40;37mUse $0 padrao"
  28.     echo "Ex:"
  29.     echo "$0 hotmail.com"
  30.     echo " "
  31. #exibe mensagem de erro e sai
  32.     exit
  33. else
  34.  
  35. #se o parâmetro de busca foi informado então
  36. #faz primeiro a busca no arquivo principal
  37. #o awk admito que peguei na net de um site gringo... mas depois de estudar um pouco ele consegui ver que ele separa as colunas com variaveis por numeros
  38. #exemplo o $3 que aparece como IP ai em baixo refere a terceira coluna da linha
  39.  
  40.     grep $1 $arquivo|egrep -v $excluidos|awk '{print "IP="$3"'$separador' CODIGO="$4"'$separador' SITE="$7}'
  41.  
  42. #Depois faz a busca nos arquivos secundários aqueles criados após o rotate do squid
  43.  
  44.     for i in $lista
  45.     do
  46.         echo -e -n "\e[40;31mArquivo: "
  47.         echo -e "\e[40;37m$i"
  48.         grep $1 $i|egrep -v $excluidos|awk '{print "IP="$3"'$separador' CODIGO="$4"'$separador' SITE="$7}'
  49.     done
  50. fi
  51.  
  52.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement