Variavel em branco [RESOLVIDO]

13. Re: Variavel em branco [RESOLVIDO]

Ricardo Neves
ricardo.ron

(usa Debian)

Enviado em 21/07/2014 - 15:16h

esse comando de 2 a 3 segundos que fica zerado
os que funcionam demoram menos que 1 segundo



  


14. Re: Variavel em branco [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 21/07/2014 - 15:58h

você já testou da forma descrita abaixo para ver se funciona ?

VALOR=$(sshpass -p 1212 ssh -o StrictHostKeyChecking=no admin@10.100.110.1 ':put [ip dhcp-server lease get [/ip dhcp-server lease find address=10.100.115.40] status;]';sleep 5) 


ou mais segundos...


15. Re: Variavel em branco [RESOLVIDO]

Ricardo Neves
ricardo.ron

(usa Debian)

Enviado em 22/07/2014 - 09:43h

Cara nao deu certo mais o comando parece ter feito o que a gente queria. Da uma olhada nessa depuracao ai
1 primeiro ele executou o comando e depois deu o sleep e apos 10 segundo ele mostou a variavel mais infelismente pela web nao da a variavel vem zerada

++ ssh admin@10.100.120.1 ':put [/ip dhcp-server lease get [/ip dhcp-server lease find address=10.100.120.40] status ]'
++ sleep 10
+ VALOR=$'bound\r'



root@cache-eserv:/script/cgi# bash -v tt6.sh
#!/bin/bash
echo Content-type: text/html
Content-type: text/html
echo

exec 2>&1
set -x

VALOR=`ssh admin@10.100.120.1 ':put [/ip dhcp-server lease get [/ip dhcp-server lease find address=10.100.120.40] status ]'; sleep 10`
ssh admin@10.100.120.1 ':put [/ip dhcp-server lease get [/ip dhcp-server lease find address=10.100.120.40] status ]'; sleep 10


++ ssh admin@10.100.120.1 ':put [/ip dhcp-server lease get [/ip dhcp-server lease find address=10.100.120.40] status ]'
++ sleep 10
+ VALOR=$'bound\r'







16. Re: Variavel em branco [RESOLVIDO]

Ricardo Neves
ricardo.ron

(usa Debian)

Enviado em 22/07/2014 - 09:57h

paulo1205 escreveu:

ricardo.ron escreveu:

Bom dia

Estou rodando um script que obtem um valor numa variavel que e atribuido ao executar o sshpass. Rodo ele como root e tbm www-data dando um su no termial e funciona normalmente o valor da variavel vem. Mas quando executo ele em cgi pela web a variavel fica vazia sendo que outras variaveis aparecem normal na pagina so nao aparece a desse comando e nao da erro algum no /var/log/apache/error.log
Segue script

#!/bin/bash
echo Content-type: text/html
echo

VALOR=$(sshpass -p 1212 ssh -o StrictHostKeyChecking=no admin@10.100.110.1 ':put [ip dhcp-server lease get [/ip dhcp-server lease find address=10.100.115.40] status;]')

cat <<FIM

<body>
<html>
<h1> valor da variavel: $VALOR</h1>
<br>
</body>
</html>

FIM



Não tem por quê apontar erro no log de erros do Apache: ainda que o comando executado pelo SSH falhe, o script, em si, não vai falhar, podendo no máximo ter uma variável com valor diferente do que você esperava.

Não sei que comandos são esses que você está passando para o SSH. Não tem cara de comando do shell. O que você especificou como shell do usuário "admin" na máquina 10.100.110.1?

Por fim, por que usar o sshpass? Você não pode fazer a autenticação com chave pública do SSH?






Respondendo ao amigo tentei rodar com chaves mas tbm nao. No console ate funciona perfeito mas quando rodo na pagina por cgi a variavel vem zerada




root@cache-eserv:/script/cgi# bash -v tt6.sh
#!/bin/bash
echo Content-type: text/html
Content-type: text/html
echo

exec 2>&1
set -x

VALOR=`ssh admin@10.100.120.1 ':put [/ip dhcp-server lease get [/ip dhcp-server lease find address=10.100.120.40] status ]'; sleep 10`
ssh admin@10.100.120.1 ':put [/ip dhcp-server lease get [/ip dhcp-server lease find address=10.100.120.40] status ]'; sleep 10


++ ssh admin@10.100.120.1 ':put [/ip dhcp-server lease get [/ip dhcp-server lease find address=10.100.120.40] status ]'
++ sleep 10
+ VALOR=$'bound\r'







17. Resolvido

Ricardo Neves
ricardo.ron

(usa Debian)

Enviado em 29/07/2014 - 15:46h

Era problema no equipamento mudei pra outro e funcionou

Obrigado a todos



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts