validando string [RESOLVIDO]

1. validando string [RESOLVIDO]

thiago
lacerdat25

(usa Red Hat)

Enviado em 08/03/2022 - 22:57h

Boa noite!

Preciso de um help, estou dando um cat num arquivo de log buscando a ultima linha, comando:
log=$(cat /opt/log/var.log | tail -1)

preciso pegar esse cara e validar om uma string, caso as 2 estejam OK, show, em caso de erro preciso parar um serviço;

meu problema e na comparação das strings, alguém poderia me dar um help please?

#!/bin/bash

log=$(cat /opt/log/var.log | tail -1)

if [[ $log == *'The purge time interval dropped below 10% of the original size (7200000), so the purging process was stopped.'* ]]; then
echo "OK"
else
echo "n igual"
fi



  


2. Re: validando string [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 09/03/2022 - 00:40h

lacerdat25 escreveu:

Boa noite!

Preciso de um help, estou dando um cat num arquivo de log buscando a ultima linha, comando:
log=$(cat /opt/log/var.log | tail -1)


Em vez de “cat xxx | tail -1”, não é mais simples fazer diretamente “tail -1 xxx”? Além de economizar um processo, uma execução de comando externo e a passagem de dados entre dois programas, você permite que uma versão potencialmente otimizada do tail não precise varrer o arquivo inteiro para chegar à última linha, mas eventualmente já consiga começar a ler perto do fim do arquivo, onde estará a informação que você deseja.

preciso pegar esse cara e validar om uma string, caso as 2 estejam OK, show, em caso de erro preciso parar um serviço;

meu problema e na comparação das strings, alguém poderia me dar um help please?


Como você sabe que o problema é na comparação, e não, por exemplo, na fonte dos dados (talvez com uma linha em branco após a mensagem que você quer, ou eventuais ocorrências de múltiplos espaços onde você esperaria ver apenas um), ou na própria mensagem que você está procurando (talvez o tamanho original nem sempre seja exatamente 7200000, se houver variação entre uma execução e outra)?

Cuidado porque falar em erro na comparação só faria sentido se você soubesse que o conteúdo é igual (caráter a caráter, incluindo espaços e outros caracteres invisíveis ou pouco visíveis) mas o script executar o código como se fosse diferente, ou vice-versa.

Uma sugestão de depuração é você imprimir o conteúdo da variável log antes da comparação, para ter certeza de que não está usando um conteúdo diferente do esperado, e tirando conclusões equivocadas.

Outra possibilidade de depuração é ligar os atributos de depuração do shell (-x e -v) e ver na saída de depuração exatamente o que é passado argumentos ao comando interno [[.


... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts