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

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

Re: [shell-script] Executar comando ssh com CGI em Sheel Script


From: Paulo Bettega
Subject: Re: [shell-script] Executar comando ssh com CGI em Sheel Script
Date: Thu, 29 May 2014 17:39:23 -0300
User-agent: Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Thunderbird/24.5.0

Hum não manjo de Mikrotik :) só sei que é um router meio fechado, não?

Mas o cgi mostra toda a saída padrão. Se vc der um ls ou tar tvf por exemplo,
o navegador vai ficar carregando e mostrando linha por linha enquanto os 
comandos tiverem saída.

Talvez o que esteja acontecendo é o que vc descreveu, o ssh conecta e manda os 
comandos,
mas logo em seguida desconecta, então talvez o canal de comunicação entre o 
server http
e o navegador feche antes do mikrotik mandar a saída dos comandos.

Se vc colocar direto o comando ping, sem o ssh, não funciona?

Outra coisa que eu pensei é redirecionar a saída pra um arquivo
ssh -i ~/.ssh/id_dsa anderson@10.4.0.1 "ping 192.168.10.10 count=10 
&>/tmp/saida-ping"
e depois colocar um cat /tmp/saida-ping no cgi.

Abraços Paulo Bettega

On 29-05-2014 15:17, address@hidden [shell-script] wrote:
esta sintaxe é o Mikrotik: ping 192.168.10.10 count=10 os comandos são um pouco 
diferentes, mas
vamos la, se eu digitar isso aqui no terminal:
ssh -i ~/.ssh/id_dsa anderson@10.4.0.1 "ping 192.168.10.10 count=10"

funciona perfeitamente, ja dentro do script cgi não funciona, eu acredito que 
ele não espera o
retorno do comando ou algo assim, digo isso porque se eu digitar um comando 
errado como:

ssh -i ~/.ssh/id_dsa anderson@10.4.0.1 "pingsss 192.168.10.10 count=10"

ai aparece a mensagem dizendo que pingsss não é valido, então se ele retorna o 
erro deveria retornar
quando da certo também. é como se ele não conceguisse esperar o retorno para 
jogar para o stdout e
atropela tudo, ja tentei colocar um sleep pra ver se resolve, mas nada.

por ultimo fiz mais um teste, coloquei pra ele fazer uma rotina que demora um 
pouco

ssh -l anderson -i /var/www/scripts/id_dsa 10.4.0.1 "export file=teste1;export 
file=teste2;export
file=teste3;export file=teste4;export file=teste5"

essa rotina vai criar 5 backups, demora uns 10 segundos, e oque percebi é que 
ocorre o login e logo
em seguida o usuario anderson desconecta, mas os comandos continuam a ser 
executados, então eu acho
que o apache/cgi não concegue prender o comando ssh quando o retorno é 0 
(executado com sucesso),
ele executa o comando e desconta, então o comando contia sendo executado no 
mikrotik, mas como o
usuario se desconectou não tem pra quem mostrar a saida, o problema agora sei 
que é este, a solução
que eu não faço idéia de qual será....

Att.
Anderson Junior



reply via email to

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