Voltar um comando quando dar erro! [RESOLVIDO]

1. Voltar um comando quando dar erro! [RESOLVIDO]

edgar
edgaroliveirace

(usa Ubuntu)

Enviado em 30/08/2011 - 16:34h

ola amigos do VOL, estou precisando de vcs para tirar uma duvida que tenho, sou novato em shell mais procuro sempre aprender alguma coisa. e o seguinte eu tenho um script q dar as saidas de erros e queria saber se tem como ele voltar o comando quando der erro o script, mesmo em servidor desligado e circuito fora.
#!/bin/bash

loja=10
ddd=87
rota=191.10.0.150

funcao() {
if ping -c3 -w9 191.$1.$2.1 2>&- > /dev/null; then
sshpass -p senha ssh root@191.$1.$2.1 /transf/loja$2.sh exit
if [ ! -d $(ls /home/suporte/loja$2.tar.bz2 2>&-) ]; then
tar xjfv /home/suporte/loja$2.tar.bz2 -C /sistemas/loja$2
if [ $? = 0 ]; then
echo "LOJA$2 OK!" >> /transmissao/resultado_lojas.txt
else
echo "LOJA$2 Arquivo Corrompido!"
fi
else
echo "LOJA$2 Arquivo Nao Foi Baixado!"
fi
elif ping -c3 -w9 191.$1.$2.150 2>&- > /dev/null; then
echo "LOJA$2 Servidor Desligado!"
else
echo "LOJA$2 Circuito Fora!"
fi
}
funcao $ddd $loja

exit 0


  


2. MELHOR RESPOSTA

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 30/08/2011 - 17:18h

Seu script tava meio confuso, ajustei um pouco as condições e inseri os "exit" nos locais corretos. Sempre que der "Servidor desligado" ou "Circuito fora" ele voltará ao início da função.



#!/bin/bash

loja=10
ddd=87
rota=191.10.0.150

funcao() {
if [ `ping -c3 -w9 191.$1.$2.1 2>&- > /dev/null` -eq 0 ]; then

sshpass -p senha ssh root@191.$1.$2.1 /transf/loja$2.sh exit

if [ ! -d $(ls /home/suporte/loja$2.tar.bz2 2>&-) ]; then

tar xjfv /home/suporte/loja$2.tar.bz2 -C /sistemas/loja$2
if [ $? = 0 ]; then

echo "LOJA$2 OK!" >> /transmissao/resultado_lojas.txt
exit 0

else

echo "LOJA$2 Arquivo Corrompido!"
exit 1

fi

else

echo "LOJA$2 Arquivo Nao Foi Baixado!"
exit 1

fi

elif [ `ping -c3 -w9 191.$1.$2.150 2>&- > /dev/null` -eq 0 ]; then

echo "LOJA$2 Servidor Desligado!"
funcao $ddd $loja

else

echo "LOJA$2 Circuito Fora!"
funcao $ddd $loja

fi

}

funcao $ddd $loja


3. Re: Voltar um comando quando dar erro! [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 30/08/2011 - 16:39h

numa função você pode colocar:

return 0 #sucesso
return 1 #problema

fora da função, você pode usar como você usou, coloque

exit 0 # sucesso
exit 1 #problema

o código de retorno fica na variável "$?"

Basta colocar onde quer testar os erros e obter esse retorno.



4. Re: Voltar um comando quando dar erro! [RESOLVIDO]

edgar
edgaroliveirace

(usa Ubuntu)

Enviado em 30/08/2011 - 17:01h

Nao entendir como isso iria voltar o comando, sou iniciante em shell se vc podesse editar o script para que eu possa entender eu agradeço.
queria quando ele desse arquivo nao baixado e arquivo corrompido ele voltasse para esse comando no script sshpass -p senha ssh root@191.$1.$2.1 /transf/loja$2.sh exit






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts