Por que o cron executando um comando remoto sobre o ssh em um roteador Cisco é interrompido?

1

Recebi a tarefa de garantir que, se um determinado servidor no trabalho morre, sabemos imediatamente. Porque eu não estou lá (ninguém é realmente), eu escrevi um script para executar na minha linux caixa roteador doméstico (que executa o Alpine Linux) para se conectar ao nosso trabalho roteador Cisco e ping o servidor (desde que o servidor não é diretamente acessível a partir da Internet).

Eu configurei rsa sem senha no roteador Cisco, e esta é a parte principal do meu script:

ssh user@work_router 'ping Server_IP' 2>/dev/null | grep -q ' 0 percent'

if [[ $? == 0 ]]
then
    #It's not responding
else
    #Everything is fine
fi

Os scripts funcionam muito bem quando são executados manualmente, mas quando digo ao cron para executá-lo, ele pára de funcionar. Redirecionando a saída ssh para um arquivo de log, vejo que este é o problema:

Ao executar manualmente, o comando fornece esta saída:

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to SERVER_IP, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms

Quando o cron o executa, esta é a saída:

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to SERVER_IP, timeout is 2 seconds:
!

Existe alguma razão pela qual o ping ou o ssh está sendo interrompido antes de serem executados?

Editar:

Executando Script do terminal usando 'ssh -v -v':

link

Executando Script com o cron usando 'ssh -v -v':

link

Um vimdiff entre esses dois arquivos mostra algumas diferenças interessantes, mas está acima da minha cabeça. Alguém pode dizer o que está acontecendo?

    
por Tal 02.01.2015 / 00:21

0 respostas

Tags