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'