validação de arquivos de logs [RESOLVIDO]

1. validação de arquivos de logs [RESOLVIDO]

thiago
lacerdat25

(usa Red Hat)

Enviado em 14/04/2021 - 14:42h

Estou cruzando 2 arquivos, ambos de logs. Quero saber se ambos possui alguma linha igual, se tiver , preciso parar o script.
Estou usando o CAT para cada arquivo, depois uso uma condicional de teste...
Não sei o que estou fazendo de errado, pois quando ele acha as linhas, ele passa reto pelo erro.

log1=$(cat -s /var/log/messages | grep 'UpdatERRO/InserERRO' | tail -1)
log2=$(cat -s arquivoLog.txt | grep 'UpdatERRO/InserERRO' | tail -1)
if [[ $log1== $log2 ]]; then echo "stop"; exit 1; fi

Poderiam me ajudar?

Valeu



  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 15/04/2021 - 21:21h

lacerdat25 escreveu:

Olá msoliver!

Muito obrigado pela dica! Sou iniciante no mundo linux e bash, ainda não manjo muito!

vaeei, esse meu script continua com mesmo erro, será que é pq o meu arquivo de texto tem 2 linhas?

Pode me dar uma luz?

log1=$(grep 'UpdatERRO/InserERRO' /var/log/messages | tail -1)
log2=$(grep 'UpdatERRO/InserERRO' /mnt/PstLOGs/arquivoLog.txt | tail -1)
echo $log1
echo $log2
if [[ "$log1" == "$log2" ]]; then
echo "stop iguals"
exit 0
else
echo "erro não iguals"
exit 0
fi

As linhas são idênticas, mesmo assim ele da erro!
Apr 14 07:04:45 logs_sincron[11489]: UpdatERRO/InserERRO 8.731 database in 229,75 minutes. Velocity: 1 persons/second.
Apr 14 07:04:45 logs_sincron[11489]: UpdatERRO/InserERRO 8.731 database in 229,75 minutes. Velocity: 1 persons/second.
erro n iguals


Lacerda, boa noite.
Testei aqui e funciona....
Como você está executando o script? ( oque escreve no terminal para executar o script)
Poste a saída de
echo $SHELL
----------------------------------------------------------------------------------------------------------------
Concluindo:
Se:
Está executando com o "bash", e ,
"$SHELL" =~ "bash"
Uma das variáveis deve ter um espaço no final da linha, ou, alguma outra diferença....
Com o "cat -A", vc visualiza a diferença.

Teste e poste a saida.
---------------------------------------------------------------------------------------------------------------
#!/usr/bin/env bash

log1="$(awk '/UpdatERRO\/InserERRO/ {X=$0} END{print X}' texto01.txt)"
log2="$(awk '/UpdatERRO\/InserERRO/ {X=$0} END{print X}' texto02.txt)"

echo -e "LOG-01:${log1}\nLOG-02:${log2}"|cat -A
[ "$log1" == "$log2" ] && echo -e "\nSão iguais" || echo -e "\nDiferentes"
---------------------------------------------------------------------------------------------------------------
No terminal, faça:
./nomedoscript

______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________
Nota de esclarecimento:
O comando: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p',
faz parte da minha assinatura.
O qual, "filtra" a página: "https://www.vivaolinux.com.br/termos-de-uso/",
Mostrando o seguinte:

Se você sanou sua dúvida ou resolveu um problema a partir de um
tópico criado, é extremamente recomendável que acesse o tópico e
marque-o como "RESOLVIDO". E mais recomendável ainda que você eleja
como melhor resposta a que mais lhe ajudou.


______________________________________________________________________


3. Re: validação de arquivos de logs [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 14/04/2021 - 15:51h


lacerdat25 escreveu:
if [[ $log1== $log2 ]]; then echo "stop"; exit 1; fi


errou na estrutura do if campeão.. if ... then ... else ....... logo

if [[ $log1 == $log2 ]]; then 
echo "stop"
else
exit 1
fi


------------------------------------------------------| Linux User #621728 |------------------------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------




4. validação de arquivos de logs

thiago
lacerdat25

(usa Red Hat)

Enviado em 14/04/2021 - 17:07h

Mauricio,

E erro persiste, será que o problema não está no cat?


5. Re: validação de arquivos de logs [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 14/04/2021 - 17:15h


lacerdat25 escreveu:

Mauricio,

E erro persiste, será que o problema não está no cat?


uai velho, não tenho a menor ideia se o erro é no cat, os arquivos de textos estão aí, logo não tenho como saber ... mas o natural seria se vc tivesse testado a saída do cat.


[email protected] ~/Desktop $ cat s.sh
log1=$(cat -s 1.log | grep 'UpdatERRO/InserERRO' | tail -1)
log2=$(cat -s 2.log | grep 'UpdatERRO/InserERRO' | tail -1)
echo $log1
echo $log2
if [[ $log1 == $log2 ]]; then echo "igual"; else echo "diferente"; fi
[email protected] ~/Desktop $ cat 1.log
maumau UpdatERRO/InserERRO
UpdatERRO/InserERRO mauricio
viva o linux UpdatERRO/InserERRO mauricio
[email protected] ~/Desktop $ cat 2.log
maumau UpdatERRO/InserERRO
UpdatERRO/InserERRO mauricio
viva o linux UpdatERRO/InserERRO mauricio
[email protected] ~/Desktop $ ./s.sh
viva o linux UpdatERRO/InserERRO mauricio
viva o linux UpdatERRO/InserERRO mauricio
igual
[email protected] ~/Desktop $


------------------------------------------------------| Linux User #621728 |------------------------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------




6. validação de arquivos de logs

thiago
lacerdat25

(usa Red Hat)

Enviado em 14/04/2021 - 17:32h

Mauricio,

Olha como estou fazendo, e olhe o resultado!

log1=$(cat -s /var/log/messages | grep 'UpdatERRO/InserERRO' | tail -1)
log2=$(cat -s arquivoLog.txt | grep 'UpdatERRO/InserERRO' | tail -1)
echo $log1
echo $log2
if [[ $log1 == $log2 ]]; then
echo "stop iguals"
exit 1
else
echo "erro n iguals"
exit 1
fi

As linhas são idênticas, mesmo assim ele da erro!
Apr 14 07:04:45 logs_sincron[11489]: UpdatERRO/InserERRO 8.731 database in 229,75 minutes. Velocity: 1 persons/second.
Apr 14 07:04:45 logs_sincron[11489]: UpdatERRO/InserERRO 8.731 database in 229,75 minutes. Velocity: 1 persons/second.
erro n iguals


Valeuuu


7. Re: validação de arquivos de logs [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 14/04/2021 - 19:58h


lacerdat25 escreveu:
Olha como estou fazendo, e olhe o resultado!

log1=$(cat -s /var/log/messages | grep 'UpdatERRO/InserERRO' | tail -1)
log2=$(cat -s arquivoLog.txt | grep 'UpdatERRO/InserERRO' | tail -1)
echo $log1
echo $log2
if [[ $log1 == $log2 ]]; then
echo "stop iguals"
exit 1
else
echo "erro n iguals"
exit 1
fi

As linhas são idênticas, mesmo assim ele da erro!
Apr 14 07:04:45 logs_sincron[11489]: UpdatERRO/InserERRO 8.731 database in 229,75 minutes. Velocity: 1 persons/second.
Apr 14 07:04:45 logs_sincron[11489]: UpdatERRO/InserERRO 8.731 database in 229,75 minutes. Velocity: 1 persons/second.
erro n iguals
Valeuuu

Boa noite Lacerda.
Coloque as variáveis entre aspas duplas:
if [[ "$log1" == "$log2" ]]; then.... 



______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________
Nota de esclarecimento:
O comando: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p',
faz parte da minha assinatura.
O qual, "filtra" a página: "https://www.vivaolinux.com.br/termos-de-uso/",
Mostrando o seguinte:

Se você sanou sua dúvida ou resolveu um problema a partir de um
tópico criado, é extremamente recomendável que acesse o tópico e
marque-o como "RESOLVIDO". E mais recomendável ainda que você eleja
como melhor resposta a que mais lhe ajudou.


______________________________________________________________________



8. validação de arquivos de logs

thiago
lacerdat25

(usa Red Hat)

Enviado em 14/04/2021 - 20:18h


Agora foi!

Muito obrigado MsOliver e Mauricio!
Realmente as "" eram o meu problema!

Valeu !!!!


9. Re: validação de arquivos de logs

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 14/04/2021 - 20:33h

lacerdat25 escreveu:


Agora foi!

Muito obrigado MsOliver e Mauricio!
Realmente as "" eram o meu problema!

Valeu !!!!

Lacerda, não é necessário o cat....
cat -s /var/log/messages | grep 'UpdatERRO/InserERRO' | tail -1
Faça:
grep 'UpdatERRO/InserERRO' var/log/messages | tail -1
Eliminando um pipe, torna mais rápido
Uma outra opção, sem pipe...
awk '/UpdatERRO\/InserERRO/ {X=$0} END{print X}' texto.txt 

______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________




10. validação de arquivos de logs

thiago
lacerdat25

(usa Red Hat)

Enviado em 15/04/2021 - 19:14h

Olá msoliver!

Muito obrigado pela dica! Sou iniciante no mundo linux e bash, ainda não manjo muito!

vaeei, esse meu script continua com mesmo erro, será que é pq o meu arquivo de texto tem 2 linhas?

Pode me dar uma luz?

log1=$(grep 'UpdatERRO/InserERRO' /var/log/messages | tail -1)
log2=$(grep 'UpdatERRO/InserERRO' /mnt/PstLOGs/arquivoLog.txt | tail -1)
echo $log1
echo $log2
if [[ "$log1" == "$log2" ]]; then
echo "stop iguals"
exit 0
else
echo "erro não iguals"
exit 0
fi

As linhas são idênticas, mesmo assim ele da erro!
Apr 14 07:04:45 logs_sincron[11489]: UpdatERRO/InserERRO 8.731 database in 229,75 minutes. Velocity: 1 persons/second.
Apr 14 07:04:45 logs_sincron[11489]: UpdatERRO/InserERRO 8.731 database in 229,75 minutes. Velocity: 1 persons/second.
erro n iguals



11. Filtrar compo expecifico.

thiago
lacerdat25

(usa Red Hat)

Enviado em 21/04/2021 - 12:03h

msoliver,

Eu estava realizando a consulta no arquivo errado!

Valeu pela ajuda!!