Executar comando linux através do php [RESOLVIDO]

1. Executar comando linux através do php [RESOLVIDO]

Guilherme Novaes Brumatti
guilhermegnb

(usa Fedora)

Enviado em 04/02/2011 - 11:47h

E ae rapazeada, tranquilidade?

Bom, estou quebrando a cabeça para fazer o seguinte:

Preciso criar um sisteminha em php que execute um tail feito no access.log, filtre e exiba o resultado em php/html.

Pesquisando cheguei a este codigo:

<?php
$resultado = shell_exec('tail access.log');
echo $resultado;
?>

Isso funciona, mas quando tento filtrar, ele não funciona, eu precisaria que ele executasse exatamente este comando:

tail -f access.log | awk '{print $3 " --> " $7 " --> " $8}'


Minha intenção é criar algo que me dê acesso em tempo real ao access.log , mas tem que ser exibido num browser...

Alguém faz idéia de como fazer isso funcionar?


abs.



  


2. Pastas

Elizandro Medina
elizandromedina

(usa CentOS)

Enviado em 04/02/2011 - 13:17h

Fala cara,

Tem que setar o caminho correto para o arquivo. Em segundo, voce tem que atribuir permissão para o apache ler este arquivo ou fazer que seu script execute o comando com o sudo ai voce atribuir permissão no sudoers.

Segue exemplo abaixo do php.net do comando php.net

<?php
$output = shell_exec('ls -lart');
echo "<pre>$output</pre>";
?>

Exemplo de uso do sudo com a função sytem

system('echo "PASS" | sudo -u root -S COMMAND');

Att,

Elizandro Medina


3. Re: Executar comando linux através do php [RESOLVIDO]

Guilherme Novaes Brumatti
guilhermegnb

(usa Fedora)

Enviado em 04/02/2011 - 14:54h

Po blz, deu uma organizada no echo, mas os filtros não funcionam, se coloco só tail access.log ele lista corretamente, mas se coloco um filtro que seja, não aparece nada... eu queria exbir soh algumas informações sacou?


abs


4. Executar comando linux através do php

Elizandro Medina
elizandromedina

(usa CentOS)

Enviado em 04/02/2011 - 15:39h

Fala cara,

Então cuidado com os caracteres de escape, aponte no seu php a diretiva abaixo, para ver se não esta ocorrendo nenhum erro:

ini_set('display_errors', 1);

Qualquer coisa, separe em variaveis tipo:

$comando = "tail -f access.log ";
$parameter = "| awk '{print $3 \" --> \" $7 \" --> \" $8}'";

shell_exec($comando.$parameter);

Att,

Elizandro Medina


5. Re: Executar comando linux através do php [RESOLVIDO]

Gustavo Hendrigo Marcon
hendrigo

(usa Suse)

Enviado em 04/02/2011 - 15:44h

Como o amigo Elizando disse:
o problema é com os caracteres especiais. Veja um exemplo de como utilizei em um caso parecido:

$comando=’grep -w language dansguardian.conf|grep =|cut -d "\’" -f 2’;
$language=shell_exec($comando);



6. Re: Executar comando linux através do php [RESOLVIDO]

Guilherme Novaes Brumatti
guilhermegnb

(usa Fedora)

Enviado em 08/02/2011 - 15:47h

Funcionou hendrigo, certinho, vlw msm.


abraço.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts