[RESOLVIDO] Shellscript executado pelo CRON apresenta resultado diferente

1. [RESOLVIDO] Shellscript executado pelo CRON apresenta resultado diferente

Bruno
bkammers

(usa Ubuntu)

Enviado em 13/03/2017 - 08:54h

Bom dia galera, beleza?

Realmente eu nunca tinha visto um caso desse antes...

É possível, o resultado de um shellscript ser diferente quando executado manualmente e pelo CRONTAB ?


Pensei estar ficando maluco, mas realmente isso está ocorrendo.


FreeBSD 10 (pfSense 2.3.3) 64 bits

Criei um script que valida quando o link adsl dinâmico fica fora do ar.

Algo bem simples, com testes de ping mesmo.


Ocorre que, se eu executar manualmente, está tudo ok (e de fato, está). Porém, pelo crontab, cai na outra condição e joga no log que o link está fora.

Alguém ja viu isso?





#!/bin/bash -x

A=`ping -c 1 -S 10.0.42.10 10.0.42.1 > /dev/null ; echo $?`
B=`ping -c 1 -S 10.0.42.10 8.8.8.8 > /dev/null ; echo $?`

op1(){
echo "Modem ADSL desligado ou desconectado. `date "+%d/%m/%y %H:%M"`" >> /opt/log_adsl.log
}

op2(){
echo "Link ADSL RS com problemas. `date "+%d/%m/%y %H:%M"`" >> /opt/log_adsl.log
}

op3(){
echo "TUDO OK. `date "+%d/%m/%y %H:%M"`" >> /opt/log_adsl.log
}



if [ "$A" != 0 ]
then
op1
fi



if [ "$A" = 0 ] && [ "$B" = 0 ]
then
echo "OK..."
op3
fi



if [ "$A" = 0 ] && [ "$B" != 0 ]
then
echo "PROBLEMAS..."
op2
fi



Manualmente, ativa a função op3 e realmente o link está ok. Mas pelo crontab, ativa a op1. Estranho né?


  


2. Possivel solução

Bruno Cavalcanti
Bruno_Cavalcanti

(usa CentOS)

Enviado em 13/03/2017 - 09:45h

Ja tive alguns problemas com Scripts automatizados.

Vamos la

peal logica se vc executa o script manualmente como root e ele executa da forma que você quer, o script ta ok

faça o seguinte no arquivo crontab

minuto hora dia-mes mes dia-semana comando
* * * * * su - root -c /caminho-completo-script.sh

OBS: o tempo que vc vai colocar vc que decide, mas coloca essa formatação na execulão do script.

essa é a discriminação do path profile.

Abraço e viva o linux


3. Re: [RESOLVIDO] Shellscript executado pelo CRON apresenta resultado diferente

Bruno
bkammers

(usa Ubuntu)

Enviado em 13/03/2017 - 10:23h

Não resolveu.

Eu tenho este script rodando em outros pfSenses, somente neste local, ocorre esse problema.


Estou tentando descobrir o que o crontab está interferindo, para gerar outro resultado... :(


4. Re: [RESOLVIDO] Shellscript executado pelo CRON apresenta resultado diferente

Bruno
bkammers

(usa Ubuntu)

Enviado em 14/03/2017 - 14:32h

O problema foi resolvido!

Tive que reiniciar o servidor pfSense.

O que me intriga, é o que poderia estar interferindo, quando executado pelo CRON?


Enfim... :)


5. Re: [RESOLVIDO] Shellscript executado pelo CRON apresenta resultado diferente

thinomar
thinomar

(usa Linux Mint)

Enviado em 14/03/2017 - 18:15h

= : Atribuição
== : Comparação

Seus IFs tem apenas 1. Você também pode usar "-eq" no lugar.


6. Re: [RESOLVIDO] Shellscript executado pelo CRON apresenta resultado diferente

thinomar
thinomar

(usa Linux Mint)

Enviado em 14/03/2017 - 18:17h

Como você está chamando o script no crontab?


7. Re: [RESOLVIDO] Shellscript executado pelo CRON apresenta resultado diferente

Bruno
bkammers

(usa Ubuntu)

Enviado em 15/03/2017 - 07:51h

O "problema" ja foi resolvido.


Após reiniciar o servidor, funcionou normalmente, sem nenhuma alteração no script.


Crontab básico:

root sh /path/script.sh






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts