Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia,
estou precisando exibir algumas informações do Asterisk através de um script PHP.
Quando executo o seguinte comando no terminal tenho o retorno que preciso: "sudo ./usr/sbin/asterisk -rx 'queue show 600'"
Precisava executar isso no meu script php.
Pesquisei bastante e vi que o Exec executa um comando, mas o problema é que preciso executar com permissão de root.
Alguém já passou por algo parecido?
<?php
$output = shell_exec("sudo ./usr/sbin/asterisk -rx 'queue show 600' ");
echo "<pre>$output</pre>";
?>Beleza, consegui remover a exigência de senha.
Alguém tem idéia de como posso armazenar o retorno do shell_exec? Tentei guardar em uma variável, mas parece não dar certo.
Segundo o manual, a saída é retornada. Sua variável $output deve conter a saída completa do comando
Outra opção é usar exec(), passando a saída e o retorno por parêmetro
Executando
sudo /usr/sbin/asterisk -rx "queue show 600 no termial obtenho como resposta:"600 has 0 calls (max unlimited) in 'fewestcalls' strategy (11s holdtime, 743s talktime), W:0, C:99, A:9, SL:78.8% within 60s",
entretanto quando executo um script com a seguinte linha de comando
shell_exec("./usr/sbin/asterisk -rx 'queue show 600'");
Não me retorna nada.
Só uma observação: quando executo um script com a seguinte linha de comando
shell_exec("ls -la");
O retorno das pastas e arquivos ocorre normalmente.
Alguém tem idéia do que pode estar errado?
shell_exec retorna o conteúdo. Ele não imprime o conteúdo
Então precisa dar echo:
echo shell_exec( 'comando' );
Resolvi settando corretamente o caminho das pastas.
Beraldo, obrigado pela ajuda.
$output = shell_exec("/./usr/sbin/asterisk -rx 'queue show 600'");
echo "<pre>$output</pre>";
Você precisa editar o /etc/sudoers e remover a exigência de senha, seja par ao usuário inteiro ou apenas para esse comando