Script de comparação de logs

1. Script de comparação de logs

Alvaro S. Farias Junior
Alvaro Jr.

(usa Ubuntu)

Enviado em 14/12/2017 - 17:56h

Olá Pessoal, tudo blz?

Então estou com uma dúvida em um script que criei para comparar o syslog. Ele compara o syslog da um tempo de 5 segundos e verifica se o resultado é o mesmo, caso o log esteja com um mesmo valor, ele envia um e-mail usando o mutt.(Ou pelo menos deveria fazer isso...Rs)

O que acontece é o seguinte, mesmo com valores diferentes no log após os 5 segundos, ele dispara o e-mail, ou seja, o sleep não tá funcionando.

Como não sou um expert em shell gostaria de pedir uma ajudinha de vocês.

Abaixo o script:

#!/bin/bash

valor1=`du -hsb /var/log/syslog | cut -d'K' -f1`
valor2=`du -hsb /var/log/syslog | cut -d'K' -f1`

DIRETORIO="/tmp"

function_email() {
sleep 5
echo '[Alerta - Syslog]' | mutt -s 'ARQUIVO SYSLOG PARADO!' \
-a "/tmp/alerta.log" -- $(cat ${DIRETORIO}/email-log.conf | tr '\n' ' ')

}


if [ "$valor1" != "$valor2" ]; then
echo "Tudo Certo Valor Diferente"
else
echo " ARQUIVO SYSLOG PARADO em:${valor1}" > /tmp/alerta.log


function_email

fi



  


2. Re: Script de comparação de logs

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 14/12/2017 - 19:54h

Alvaro Jr. escreveu:

Olá Pessoal, tudo blz?

Então estou com uma dúvida em um script que criei para comparar o syslog. Ele compara o syslog da um tempo de 5 segundos e verifica se o resultado é o mesmo, caso o log esteja com um mesmo valor, ele envia um e-mail usando o mutt.(Ou pelo menos deveria fazer isso...Rs)

O que acontece é o seguinte, mesmo com valores diferentes no log após os 5 segundos, ele dispara o e-mail, ou seja, o sleep não tá funcionando.

Como não sou um expert em shell gostaria de pedir uma ajudinha de vocês.

Abaixo o script:

#!/bin/bash
valor1=`du -hsb /var/log/syslog | cut -d'K' -f1`
valor2=`du -hsb /var/log/syslog | cut -d'K' -f1`
DIRETORIO="/tmp"
function_email() {
sleep 5
echo '[Alerta - Syslog]' | mutt -s 'ARQUIVO SYSLOG PARADO!' \
-a "/tmp/alerta.log" -- $(cat ${DIRETORIO}/email-log.conf | tr '\n' ' ')

}


if [ "$valor1" != "$valor2" ]; then
echo "Tudo Certo Valor Diferente"
else
echo " ARQUIVO SYSLOG PARADO em:${valor1}" > /tmp/alerta.log
function_email
fi


Alvaro, boa noite.
Não tenho como testar, mas parece um problema de lógica...
As variáveis valor1 e valor2 devem ser atualizadas a cada ciclo.
Do modo que está, elas são definidas somente qdo o script é iniciado.

Att.:
Marcelo Oliver


3. Não testei mais acredito que funcione. Vc tem que deixar um loop sempre verificando os valores assim

Fer P. Qui
checkmort

(usa Ubuntu)

Enviado em 21/12/2017 - 16:46h

#!/bin/bash

DIRETORIO="/tmp"

function_email() {
echo '[Alerta - Syslog]' | mutt -s 'ARQUIVO SYSLOG PARADO!' \
-a "/tmp/alerta.log" -- $(cat ${DIRETORIO}/email-log.conf | tr '\n' ' ')
}

function_verifica(){

valor1=`du -hsb /var/log/syslog | cut -d'K' -f1`
valor2=`du -hsb /var/log/syslog | cut -d'K' -f1`

if [ "$valor1" != "$valor2" ]; then
echo "Tudo Certo Valor Diferente"
else
echo " ARQUIVO SYSLOG PARADO em:${valor1}" > /tmp/alerta.log
function_email
fi
sleep 5
function_verifica

}

function_verifica







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts