Re: [Poss?vel Spam] Re: [OT] Shell Script Apache Log

2011-10-20 Por tôpico Leslie H. Watter

Oi Harley,

porque vc não usa o comm para comparar 2 arquivos ?


Veja um exemplo do que eu te digo:



$ comm -3 (tail -n 5 /var/log/auth.log | sort ) (tail -n 5 
/var/log/auth.log.1 | sort)
Oct 17 10:39:04 x CRON[12130]: pam_unix(cron:session): 
session closed for user root
Oct 17 10:45:02 x CRON[12171]: pam_limits(cron:session): 
Unknown kernel rlimit 'Max realtime timeout' ignored
Oct 17 10:45:02 x CRON[12171]: pam_unix(cron:session): 
session closed for user root
Oct 17 10:45:02 x CRON[12171]: pam_unix(cron:session): 
session opened for user root by (uid=0)
Oct 17 10:46:30 x su[11744]: pam_unix(su:session): session 
closed for user nobody
Oct 20 10:33:01 x CRON[27030]: pam_limits(cron:session): Unknown 
kernel rlimit 'Max realtime timeout' ignored
Oct 20 10:33:02 x CRON[27030]: pam_unix(cron:session): session 
closed for user root
Oct 20 10:35:01 x CRON[27179]: pam_limits(cron:session): Unknown 
kernel rlimit 'Max realtime timeout' ignored
Oct 20 10:35:01 x CRON[27179]: pam_unix(cron:session): session 
closed for user root
Oct 20 10:35:01 x CRON[27179]: pam_unix(cron:session): session 
opened for user root by (uid=0)
$



agora com o wc -l 


$ wc -l (comm -3 (tail -n 5 /var/log/auth.log | sort ) (tail -n 5 
/var/log/auth.log.1 | sort))
10 /dev/fd/63



recebendo direto o número de linhas diferentes


$ wc -l (comm -3 (tail -n 5 /var/log/auth.log | sort ) (tail -n 5 
/var/log/auth.log.1 | sort)) | cut -f 1 -d ' '
10




agora mudando para o mesmo arquivo  


$ wc -l (comm -3 (tail -n 5 /var/log/auth.log | sort ) (tail -n 5 
/var/log/auth.log | sort)) | cut -f 1 -d ' '
0


Dessa maneira vc consegue comparar arquivos e linhas, basta ajeitar a saida do 
tail -f para algum lugar temporário conforme tua necessidade. 

[]s

LEslie



Em Wed, Oct 05, 2011 at 11:44:49AM -0300, Harlei Liguori Marcelino escreveu:
| Date: Wed, 5 Oct 2011 11:44:49 -0300
| Subject: [Poss?vel Spam]  Re: [OT] Shell Script Apache Log
| From: Harlei Liguori Marcelino hligu...@gmail.com
| To: P. J. pjotam...@gmail.com
| Cc: Debian-User debian-user-portuguese@lists.debian.org
| 
|Amigos, ta dificil aqui uahauhauha sera que podem me ajudar?
|Por algum motivo o script abaixo le todas as linhas mas nao refaz as
|checagens, vejam:
| 
|#!/bin/bash
| 
|# Set some variables here
| 
|logfile=/var/log/httpd/server_error_log
| 
|pattern=[error]
| 
|email=har...@server.com
| 
|erros_notificados=/root/script/erros_notificados.log
| 
|# read each new line as it gets written to the log file
| 
|tail -fn0 $logfile | while read line ; do
| 
|  # check each line against our pattern
| 
|  echo $line | grep -i $pattern
| 
|  # if a line matches...
| 
|  if [ $? = 0 ]; then
| 
|linha_tratada=`echo $line | awk '{print $9, $10, $11, $12, $13, $14,
|$15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29,
|$30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $40}'`
| 
|# procura linha_tratada no arquivo de erros existente
| 
|# se nao existir, cadastra no arquivo e envia um email com conteudo de
|line
| 
|if [ $(grep -c $linha_tratada $erros_notificados) -eq 0 ]; then
| 
|   echo $linha_tratada  $erros_notificados
| 
|   # send an email!
| 
|   echo Found an error: $line | mail $email -s ERROR
| 
|fi
| 
|  fi
| 
|done
| 
|O problema e:
| 
|if [ $(grep -c $linha_tratada $erros_notificados) -eq 0 ]; then
| 
|A primeira linha ele pega e checa, se e zero, ele cadastra a linha no
|arquivo certinho, so que quando chega a segunda, terceira, etc* ele nao
|checa mais e da sempre o valor como 0 e ai cadastra linhas iguais no
|arquivo, mesmo ja tendo cadastrado anteriormente, ai envia emails sobre
|problemas que ja foram notificados toda hora.
| 
|Alguem sabe me ajudar a descobrir o pq q ele nao checa todas as vezes?
| 
|agradec,o desde ja
| 
|att
| 
|Harlei
| 
|Em 5 de outubro de 2011 01:16, Harlei Liguori Marcelino
|hligu...@gmail.com escreveu:
| 
|  Obrigado pela resposta meu amigo ;) vou verificar esses softwares...
|   
|  mas comecei a desenvolver um shell pra isso tb. Estou agarrado tentando
|  tirar as primeiras colunas do arquivo de log do apache onde tem IP de
|  origel e tal, pq essa parte geralmente sera diferente mesmo. Alguem sabe
|  como reverter o resultado do print do awk por exemplo para mostrar todas
|  as colunas exceto as primeiras ou algo q fac,a isso em shell?
|   
|  att
|   
|  Harlei
| 
|   
|  2011/10/5 P. J. pjotam...@gmail.com
| 
|Em 5 de outubro de 2011 00:17, Harlei Liguori Marcelino
|hligu...@gmail.com

Re: [OT] Shell Script Apache Log

2011-10-20 Por tôpico Felipe Augusto van de Wiel (faw)
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA512

On 05-10-2011 00:17, Harlei Liguori Marcelino wrote:
 Amigos,
  
 apesar de não ser o assunto da lista já tive problemas de Shell Script e
 recebi diversar ajudas importantes aqui na lista, fora que, talvez
 exista algum software já escrito que eu possa usar poupando o trabalho
 de escrever um Shell Script.
 Preciso urgentemente escrever um Shell Script ou encontrar um Shell
 Script ou Software que faça a varredura do arquivo de erros do apache de
 X em X minutos, verifique os erros existentes e os envie por e-mail.
 Isso teoricamente seria até simples de fazer, agora, o problema todo é
 como fazer isso e evitar que os mesmos erros sejam enviados 1.000 vezes
 por email? Por exemplo, se tenho um erro X acontecendo em uma tela muito
 usada, este erro será gerado milhares de vezes e este script simples não
 conseguiria checar se o erro já foi enviado por e-mail ou não.
 Alguém teria algum script q faça algo parecido ou me indicaria algum
 software? Ou se for o caso, me dê uma luz de como fazer este script?
 Pensei em algo como guardar em um arquivo texto as linhas que já enviei
 por e-mail e checar se a linha existe no arquivo, ou algo deste tipo.
 Será válido? Ou alguém tem alguma outra ideia?
  
 Qualquer ajuda é extremamente bem vinda.

O nome da ferramenta que você procura é logcheck.

Na mesma linha você pode configurar o swatch ou o syslog-ng.

Talvez seja do seu interesse o logwatch.

Finalmente, você pode construir algo a partir do princípios do fail2ban.

Abraço,
- -- 
Felipe Augusto van de Wiel (faw) f...@funlabs.org
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQIcBAEBCgAGBQJOoCgeAAoJEMa4WYSFUi4t2c4P/i50TRLXtkSyoCD0s68NyXYZ
iyqALPFPoByputT/u6osjb0qT7WlVoEN46cz7iIjcW6LZvFfT+aIEp8qWPLjxHwT
tYyKP1s7q692wjujVqxgjXzwFIonAxS404x97mkZF0fFqw3ZOzLLcCCtbIC3qxP/
zQJPM8V9Khs1klrryWz4FCpfbMxyEM/oQwZqg2XA9bDtER+GBAU2KDt7V40p9rYD
Q6MJ8GEmyh3vuA5ozzGug3PnI6HujdHYd3YQ409ZcBEwqN/ZEaXCm387OXSUHhvW
PXy55Kxbr0B2j1chSHyfrUVAwJfhUbAH4ZkbWs0GHADuGd7E1Zrj8kPIvRaJn0wA
Y5TZGVODoskJsDlTOLjbzT/a/s2VajmyVfYk5H2gaGy9X3BwEBMnQ+mGr7WgD/CG
1OLJqhmFuTuIrNegcuKfTc4xx6rfS0vEl5DHmqgs1sRqIM9YrZUeav3OB12zSopo
MQijmjZvFTl4fpYwAUah+2103QWNlBLXsGmthbp9lD9Y4vQOBz57S/ntUPjrBCPH
EUEuiiXX+hoYPwu3WfBReHiyvOARF2JMA9aGT31rbK4hRzPK1AZqFotYR0oAYD7i
g8Op1gygDaFfLyiZtMIxAmBsgz8MPAjzzW7NAtagcUdnRekSo1CE24IW7hhs+4Fv
T94jwW8lZIvdv5PwRSPU
=pWOL
-END PGP SIGNATURE-


-- 
To UNSUBSCRIBE, email to debian-user-portuguese-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4ea0281e.5080...@funlabs.org



Re: [OT] Shell Script Apache Log

2011-10-05 Por tôpico Harlei Liguori Marcelino
Amigos, ta dificil aqui uahauhauha será que podem me ajudar?

Por algum motivo o script abaixo le todas as linhas mas não refaz as
checagens, vejam:

#!/bin/bash


# Set some variables here

logfile=/var/log/httpd/server_error_log

pattern=[error]

email=har...@server.com

erros_notificados=/root/script/erros_notificados.log


# read each new line as it gets written to the log file

tail -fn0 $logfile | while read line ; do


  # check each line against our pattern

  echo $line | grep -i $pattern


  # if a line matches...

  if [ $? = 0 ]; then


linha_tratada=`echo $line | awk '{print $9, $10, $11, $12, $13, $14,
$15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29,
$30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $40}'`


# procura linha_tratada no arquivo de erros existente

# se nao existir, cadastra no arquivo e envia um email com conteudo de
line


if [ $(grep -c $linha_tratada $erros_notificados) -eq 0 ]; then


   echo $linha_tratada  $erros_notificados


   # send an email!

   echo Found an error: $line | mail $email -s ERROR

fi

  fi

done





O problema é:


if [ $(grep -c $linha_tratada $erros_notificados) -eq 0 ]; then


A primeira linha ele pega e checa, se é zero, ele cadastra a linha no
arquivo certinho, só que quando chega a segunda, terceira, etc… ele não
checa mais e da sempre o valor como 0 e ai cadastra linhas iguais no
arquivo, mesmo já tendo cadastrado anteriormente, ai envia emails sobre
problemas que já foram notificados toda hora.


Alguém sabe me ajudar a descobrir o pq q ele não checa todas as vezes?


agradeço desde já


att


Harlei

Em 5 de outubro de 2011 01:16, Harlei Liguori Marcelino
hligu...@gmail.comescreveu:

 Obrigado pela resposta meu amigo ;) vou verificar esses softwares...

 mas comecei a desenvolver um shell pra isso tb. Estou agarrado tentando
 tirar as primeiras colunas do arquivo de log do apache onde tem IP de origel
 e tal, pq essa parte geralmente será diferente mesmo. Alguém sabe como
 reverter o resultado do print do awk por exemplo para mostrar todas as
 colunas exceto as primeiras ou algo q faça isso em shell?

 att

 Harlei



 2011/10/5 P. J. pjotam...@gmail.com

 Em 5 de outubro de 2011 00:17, Harlei Liguori Marcelino
 hligu...@gmail.com escreveu:
  Amigos,
 

  ou Software que faça a varredura do arquivo de erros do apache de X em X
  minutos, verifique os erros existentes e os envie por e-mail.

 http://www.icinga.org/

 http://www.zabbix.com/

 --
 |  .''`.   A fé não dá respostas. Só impede perguntas.
 | : :'  :
 | `. `'`
 |   `-   P.J. - http://wiki.dcc.ufba.br/~PeeJay


 --
 To UNSUBSCRIBE, email to debian-user-portuguese-requ...@lists.debian.org
 with a subject of unsubscribe. Trouble? Contact
 listmas...@lists.debian.org
 Archive:
 http://lists.debian.org/cacnf0piled_6lzx16be+o4fk1uzikgexol_1svqxdr9exdw...@mail.gmail.com





[OT] Shell Script Apache Log

2011-10-04 Por tôpico Harlei Liguori Marcelino
Amigos,

apesar de não ser o assunto da lista já tive problemas de Shell Script e
recebi diversar ajudas importantes aqui na lista, fora que, talvez exista
algum software já escrito que eu possa usar poupando o trabalho de escrever
um Shell Script.
Preciso urgentemente escrever um Shell Script ou encontrar um Shell Script
ou Software que faça a varredura do arquivo de erros do apache de X em X
minutos, verifique os erros existentes e os envie por e-mail. Isso
teoricamente seria até simples de fazer, agora, o problema todo é como fazer
isso e evitar que os mesmos erros sejam enviados 1.000 vezes por email? Por
exemplo, se tenho um erro X acontecendo em uma tela muito usada, este erro
será gerado milhares de vezes e este script simples não conseguiria checar
se o erro já foi enviado por e-mail ou não.
Alguém teria algum script q faça algo parecido ou me indicaria algum
software? Ou se for o caso, me dê uma luz de como fazer este script? Pensei
em algo como guardar em um arquivo texto as linhas que já enviei por e-mail
e checar se a linha existe no arquivo, ou algo deste tipo. Será válido? Ou
alguém tem alguma outra ideia?

Qualquer ajuda é extremamente bem vinda.

agradeço desde já

att

Harlei


Re: [OT] Shell Script Apache Log

2011-10-04 Por tôpico P. J.
Em 5 de outubro de 2011 00:17, Harlei Liguori Marcelino
hligu...@gmail.com escreveu:
 Amigos,


 ou Software que faça a varredura do arquivo de erros do apache de X em X
 minutos, verifique os erros existentes e os envie por e-mail.

http://www.icinga.org/

http://www.zabbix.com/

-- 
|  .''`.   A fé não dá respostas. Só impede perguntas.
| : :'  :
| `. `'`
|   `-   P.J. - http://wiki.dcc.ufba.br/~PeeJay


--
To UNSUBSCRIBE, email to debian-user-portuguese-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/cacnf0piled_6lzx16be+o4fk1uzikgexol_1svqxdr9exdw...@mail.gmail.com



Re: [OT] Shell Script Apache Log

2011-10-04 Por tôpico Harlei Liguori Marcelino
Obrigado pela resposta meu amigo ;) vou verificar esses softwares...

mas comecei a desenvolver um shell pra isso tb. Estou agarrado tentando
tirar as primeiras colunas do arquivo de log do apache onde tem IP de origel
e tal, pq essa parte geralmente será diferente mesmo. Alguém sabe como
reverter o resultado do print do awk por exemplo para mostrar todas as
colunas exceto as primeiras ou algo q faça isso em shell?

att

Harlei



2011/10/5 P. J. pjotam...@gmail.com

 Em 5 de outubro de 2011 00:17, Harlei Liguori Marcelino
 hligu...@gmail.com escreveu:
  Amigos,
 

  ou Software que faça a varredura do arquivo de erros do apache de X em X
  minutos, verifique os erros existentes e os envie por e-mail.

 http://www.icinga.org/

 http://www.zabbix.com/

 --
 |  .''`.   A fé não dá respostas. Só impede perguntas.
 | : :'  :
 | `. `'`
 |   `-   P.J. - http://wiki.dcc.ufba.br/~PeeJay


 --
 To UNSUBSCRIBE, email to debian-user-portuguese-requ...@lists.debian.org
 with a subject of unsubscribe. Trouble? Contact
 listmas...@lists.debian.org
 Archive:
 http://lists.debian.org/cacnf0piled_6lzx16be+o4fk1uzikgexol_1svqxdr9exdw...@mail.gmail.com