PHP + Shell - Ajuda

1. PHP + Shell - Ajuda

Alex Miranda
Axel Kid

(usa Ubuntu)

Enviado em 20/04/2012 - 14:08h

Não sei se estou postando na areá certa mas vamos la...

Eu gostaria de usar uma variável do PHP pra executar um comando no shell, não sei explicar muito bem mas eh mais ou menos isso (escrito num "portugol" mais tosco e simples possível):

<codigo>
<echo: "Digite o Comando a ser executado:">
<text fild guardando o comando escrito pelo user na variável "comando">

<execute o arquivo exe.sh'$comando'>
</codigo>

Dentro do arquivo exe.sh:
#!/bin/bash

service squid $1

exit 0


O que eu queria era que a minha variável $1 recebesse o valor do $comando, assim se o usuário escrever "restart" ele restartaria o serviço do squid.

Tentei com o seguinte código em PHP mas não obtive sucesso:

---
<form action="">
<p>
<input type="text" name="txtCond" value="">
<input type="submit" name="button" id="button" value="Rodar Comando" >
</p>
</form>

<?
$comando = $_POST['txtCond'];
system ("./exe.sh '$comando'");
?>

Ignorem o .sh, pode ser .cgi ou qualquer outra extensao que funfe ^^ (estou usando ubuntu, por isso pensei no .sh)

Grato desde já, fico no aguardo de respostas =D


  


2. Re: PHP + Shell - Ajuda

Vinicius Miqueloti
Miqueloti

(usa Lubuntu)

Enviado em 20/04/2012 - 16:29h

Tipo, qual problema que está dando? teoricamente está correto.

Mais tente abolir o uso do shell script e efetuar o comando direto pela função. Por exemplo, abaixo em um script php que manipula arquivos, uso o sed para fazer uma substituição de tabulações por ponto e virgula, para converter um arquivo que recebo tabulado em csv separado por virgulas (como faço isso em arquivos de texto muito grandes, é mais rápido enviar a tarefa pro shell ao invés de tratar no php):
exec("sed -i 's/\t/;/g' ".$destino.'/'.$file.'.XLS');

experimente usar exec('service squid '.$comando); e veja se funciona, depois coloca ai.


3. Re: PHP + Shell - Ajuda

Alex Miranda
Axel Kid

(usa Ubuntu)

Enviado em 20/04/2012 - 16:37h

Teoricamente funcionaria... mas ele nem reinicia nem faz nada...

Sinceramente nao entendi bulhufas do que disse sobre csv, sed e tudo mais =P
Sou meio burrinho ^^

O comando que vc passou tmb nao foi, nao traz resposta de nada, fiz assim:

exec('killall '.$comando);

e

exec("killall '.$comando'")

Testei pra ele matar meu "xterm" e nada... =/






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts