shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Re: Duvida para atribuir valor a variavel


From: Rodrigo Cunha
Subject: Re: [shell-script] Re: Duvida para atribuir valor a variavel
Date: Sat, 9 Jul 2016 20:21:21 -0300

Realmente, mas no meu caso eu to fazendo um script para analisar um arquivo de texto.
To construindo ainda, só fiz ele em portugol e to fazendo por partes...
Segue o esqueleto do script:

#Iniciando Backuo das Bases
echo Iniciando Backuo das Bases $DATA |tee --a ../var/backup.log ../var/error.log ../var/work.log

mysqldump -h localhost -uteste -psenha --opt teste > teste.bkp$DATE
aux1=$(($?)) && echo $aux1
if [ "$aux1" == "0" ]; then
echo Backup da base $DATABASE1 ocorreu >> ../var/work.log
else
echo Backup da base $DATABASE1 falhou >> ../var/error.log
fi


#Snifando o arquivo de erro
varerror=$(cat  ../var/error.log |grep -i $DATA | wc -l)
#varerror=$( grep "$DATA" ../var/error.log | wc -l )
echo "$varerror"
if [ "varerror" != "1" ] ; then
let "varerror=varerror-1"
fi
echo "$varerror"

Esse script serve para me auxiliar num problema que tenho no meu ambiente...
No meu caso eu estava enviando e-mails para meu email particular quando o script era executado, mas eu quero fazer uma analise e enviar um email de erro caso uma das bases falhe.
Minha solução(gambiarra) para isso é analisar o conteudo do log de erro pela string da data, ou seja se a string de data estiver contida no arquivo de erro.log eu envio um email de erro, caso o valor seja 0 eu envio um email de backup.ok

Deve ter algum método mais facil, mas to testando minha habilidade em shell também só para desenferrujar.
Já me indicaram o perl para fazer scripts de ambiente, mas eu não tenho nenhuma lista boa de perl para isso...rs

Em 9 de julho de 2016 20:14, Rodrigo Cunha <address@hidden> escreveu:
Funcionou!Vlw amigo, obrigado!

Em 9 de julho de 2016 20:12, address@hidden [shell-script] <address@hidden> escreveu:
 

Claro que sim Rodrigo

O problema é a construção "$(( .. ))" com dois paraenteses

Use:

varerror=$( cat  ../var/error.log | grep $DATA | wc -l )

Eu prefiro não usar o cat já que o grep pode fazer isso diretamente e vc teria um pipe a menos.
E eu costumo usar aspas ao redor das variáveis normalmente na eventualidade de haver espaços no seu conteúdo, é apenas força do hábito, mas nesse caso como apenas retorna um número é indiferente.


[]'s
Itamar




--
Atenciosamente,
Rodrigo da Silva Cunha




--
Atenciosamente,
Rodrigo da Silva Cunha


reply via email to

[Prev in Thread] Current Thread [Next in Thread]