script que faça tail + enviar email [RESOLVIDO]

1. script que faça tail + enviar email [RESOLVIDO]

Diego Maciel Gomes
dimago

(usa Red Hat)

Enviado em 03/08/2009 - 09:28h

Bom dia Srs,

Gostaria de um script que leia um arquivo de log, e caso ele lendo esse arquivo ache tal string, palavra ele me mande um email avisando...

seria assim.. uso o squid com squidguard, e volta e meia o pessoal noturno mexe nas configurações e acaba fazendo alguma jaguarada, e ai o squidguard entra em emergency mode, e fica liberado sem ler as regras, gostaria que quando isso acontecesse, eu ficasse sabendo...

exemplo do log:

2009-07-28 08:58:01 [27322] going into emergency mode

detalhe: ele tem que saber que é algo recente... se nao ele ficará avisando mesmo sendo resolvido o problema do emergency mode..

obrigado

diego


  


2. Re: script que faça tail + enviar email [RESOLVIDO]

nelio
neliobjr

(usa Red Hat)

Enviado em 03/08/2009 - 15:37h

Cara, posta mais detalhes, pois infelizmente não "manjo" de squid, por exemplo.

Este script que quer fazer, vai rodar de hora em hora, ou de tempos em tempos. Este log é gerado como ? assim que entra neste emergency mode (ele cria um erro.log)? fica aonde este log?

Tem um pedaço deste log?? se sim posta ai.


3. Re: script que faça tail + enviar email [RESOLVIDO]

Diego Maciel Gomes
dimago

(usa Red Hat)

Enviado em 03/08/2009 - 16:18h

opaaaa

seria assim...

cada vez que faço o comando do reconfigure do squid ele roda o log lendo as regras do squidguard... eh algo como vc parar o serviço, e subir ele.. ai em algum lugar ele grava esse log....

quando faço o comando pra restart do squid, ele vai la, leu as regras todas do squidguard e se tah ok ele mostra:

2009-08-03 15:33:45 [21021] squidGuard 1.2.0 started (1249324425.273)
2009-08-03 15:33:45 [21021] squidGuard ready for requests (1249324425.977)

se deu pau ele mostra

2009-08-03 15:33:45 [21021] squidGuard 1.2.0 started (1249324425.273)
2009-08-03 15:33:45 [21021] going to emergency mode(1249324425.977)

quando tiver esse going to emergency mode preciso ser avisado sabe...

precisaria que ele fizesse isso de hora em hora..

mas ai jogo na cron e um abraçoooo :)
obrigadooo




4. Re: script que faça tail + enviar email [RESOLVIDO]

nelio
neliobjr

(usa Red Hat)

Enviado em 03/08/2009 - 16:59h

Se eu te falar que estou sem tempo vc acredita, rsrs

Mas vamos lá, ve se sai alguma coisa ai com este script que fiz, tenta moldar nas suas necessidades e acho que dará certo, fiz pegando a linha do log que vc postou primeiro.

Primeiro, quanto ao envio do email, sei que existem outros meios, mas nunca vi um tão simples quanto o que uso, que aprendi aqui com o pessoal, segue:

http://www.vivaolinux.com.br/dica/Enviando-email-com-Python-e-autenticacao-no-SMTP-pelo-Linux/

crie um arquivo de log e salve junto com os scripts, neste log coloque o texto do email, ex.

### caiu a porcaria do firewall ###
$$$ verifique urgente $$$
### enfim, qualquer coisa ####

Agora o script, Como disse testei com a linha e ta beleza.

#!/bin/sh

hoje=`date +%Y%m%d`

if [ `grep -i "going into emergency mode" "/home/oracle/teste/log" | awk '{print $1}' | sed "s/"-"/""/g"` -eq $hoje ] ; then

# resumindo grep - procura palavra/frase no log, awk verifica se a data é recente no #caso o proprio dia, o sed - altera a "-" por "espaço vazio" e será comparado com a #variavel hoje que foi declarado acima

echo envia email #opcional
python script.py /caminho/log_de_envio_de_email.

fi



5. Re: script que faça tail + enviar email [RESOLVIDO]

Diego Maciel Gomes
dimago

(usa Red Hat)

Enviado em 03/08/2009 - 17:41h

ehheeh.. acredito sim.. aqui tmb estah corrido :(

mas agradeço a ajuda.. :)

segue abaixo detalhes...


criei um diretorio em usr local sbin script_log

ali dentro tenho 3 arquivos:

- check_squidguard_log.sh

#!/bin/sh

hoje=`date +%Y%m%d`

if [ `grep -i "going into emergency mode" "/var/log/squidguard/squidGuard.log" | awk '{print $1}' | sed "s/"-"/""/g"` -eq $hoje ] ; then

# resumindo grep - procura palavra/frase no log, awk verifica se a data é recente no
#caso o proprio dia, o sed - altera a "-" por "espaço vazio"
#e será comparado com a variavel hoje que foi declarado acima

echo envia email
#opcional
python script.py /usr/local/sbin/script_log/envia_email.log

fi

- envia_email.log

### Problemas com o SquidGuard ###
### É provável que voce fez alguma alteração errada!!! ###
### Favor verificar com urgência!!! ####
### Nesse momento squid está aberto para navegação em qualquer página ###

- script.py

import smtplib
import sys
import commands
from email.MIMEText import MIMEText

le=commands.getoutput(' cat %s' % sys.argv[1])

try :
serv=smtplib.SMTP()
smtpserver="smtp.dominio"
serv.connect(IP,25)
serv.login("user","pass")
msg1 = MIMEText("%s"% le)
msg1['Subject']='Problema com SquidGuard'
msg1['From']="user@dominio"
msg1['To']="user@dominio"
serv.sendmail("user@dominio","user@dominio", msg1.as_string())
serv.quit()
except Exception, e:
print "Erro : %s" % e
else:
print "Concluído"


quando executo o sh check_squidguard_log.sh
check_squidguard_log.sh: line 5: [: -eq: unary operator expected




6. Re: script que faça tail + enviar email [RESOLVIDO]

nelio
neliobjr

(usa Red Hat)

Enviado em 03/08/2009 - 18:21h

Cara eu sei o que, mas não sei o pq, para resolver achei uma solução paleativa e ta rodando.

Isto acontece quando não existe a mensagem: 2009-07-28 08:58:01 [27322] going into emergency mode, como só testei com ele, passou batido.

para isso criei um if antes ficando assim, mudei de algumas coisas tb:

#!/bin/sh

hoje=`date +%Y%m%d`

if grep -i "going to emergency mode" /home/oracle/teste/log > /dev/null; then

if [ `grep -i "going to emergency mode" /home/oracle/teste/log | awk '{print $1}' | sed "s/"-"/""/g"` -eq $hoje >/dev/null ]; then


echo envia email

fi

fi


OBS: O SEU SCRIPT DE EMAIL ESTA ERRADO, ou não o fez é necessário trocar as informações pelas informações do seu email, por exemplo:

smtpserver="smtp.terra.com.br"
serv.connect(IP,25)
serv.login("neliobjr","senha")
msg1 = MIMEText("%s"% le)
msg1['Subject']='Problema com SquidGuard'
msg1['From']="nsilva@igmf.com.br"

complete o script todo.


7. Re: script que faça tail + enviar email [RESOLVIDO]

Diego Maciel Gomes
dimago

(usa Red Hat)

Enviado em 04/08/2009 - 08:59h

bom diaaaaaa

entao.. agora nao tenho mais aquele erro mesmo :)

porem, meu envio de email nao funcionou....

os parametros, apenas troquei ali no post anterior para nao mostrar os dados....

se executo o script me gera esse erro..

./script.py: line 1: import: command not found
./script.py: line 2: import: command not found
./script.py: line 3: import: command not found
./script.py: line 4: from: command not found
./script.py: line 6: syntax error near unexpected token `('
./script.py: line 6: `le=commands.getoutput(' cat %s' % sys.argv[1])'

hahaha.. agora quebrou neh???


8. Re: script que faça tail + enviar email [RESOLVIDO]

Diego Maciel Gomes
dimago

(usa Red Hat)

Enviado em 04/08/2009 - 09:01h

acho que preciso instalar o python....

deixa eu ver o q consigo akii..

[*****] eh que nao tenho o up2date :(


9. Re: script que faça tail + enviar email [RESOLVIDO]

Diego Maciel Gomes
dimago

(usa Red Hat)

Enviado em 04/08/2009 - 09:36h

consegui fazer o envio de e-mail..

#!/bin/sh

hoje=`date +%Y%m%d`

if grep -i "going into emergency mode" /var/log/squidguard/squidGuard.log > /dev/null; then

if [ `grep -i "going into emergency mode" /var/log/squidguard/squidGuard.log | awk '{print $1}' | sed "s/"-"/""/g"` -eq $hoje >/dev/null ];
then
echo "Log OK"

else
/usr/local/sbin/script_log/envia_mail.sh

#echo envia email
#opcional
#python script.py /usr/local/sbin/script_log/envia_email.log

fi

fi


envia_mail.sh

echo "Existe alguma configuração errada. Squid em Emergency Mode. Favor verificar o erro e resolver com urgência!!!" | mail -s "*** Problema com SquidGuard ***" email@dominio.com.br

poremmmmm

mesmo o squid voltando em ready for requests, ele ainda manda o email d erro..

acredito que ele precise ler a ultima linha do log... pois eh ela q diz.. sim ou nao... ready for requests ou going into emergency mode


serah q conseguimos fazer isso nelio???

abraçooo e obrigado mais uma vez


10. Re: script que faça tail + enviar email [RESOLVIDO]

nelio
neliobjr

(usa Red Hat)

Enviado em 04/08/2009 - 10:19h

cara me manda um email que a gente mata isso

neliobjr@gmail.com

abs


11. Re: script que faça tail + enviar email [RESOLVIDO]

Diego Maciel Gomes
dimago

(usa Red Hat)

Enviado em 04/08/2009 - 10:21h

nelio..

veja se vc concorda:

#!/bin/sh

hoje=`date +%Y%m%d`

if tail -1 /var/log/squidguard/squidGuard.log |grep "going into emergency mode" > /dev/null; then

if [ `tail -1 /var/log/squidguard/squidGuard.log |grep "going into emergency mode" | awk '{print $1}' | sed "s/"-"/""/g"` -eq $hoje >/dev/null ];
then
/usr/local/sbin/script_log/envia_mail.sh

fi
fi

agora estah funcionando como querooo






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts