Artigos: 32   Dicas: 104   Usuários: 157
Esqueceu sua senha? Cadastre-se
scriptsadmin
Linux mulheres
trainingtecnologia
Distribuições Linux
O que mais irrita no mundo Linux
Home >> Artigos >> Programação >> Shell Script + PHP

Shell Script + PHP

Relatório de seu sistema utilizando linguagem PHP e shell script. Pode ser visualizado por qualquer ponto de sua intranet ou inclusive pela web, de forma bem simples e totalmente visual.
Data de criação: 03/03/2010
Indicar para um amigo Indicar para um amigo     Favoritos Favoritos

2 - PHP: string System()

Hospedagem Cainf
string system ( string command [, int return_var] )

system() é igual a versão C desta função no que executa o "command" indicado e mostra o resultado. Se é dada uma variável como segundo argumento, então o código de status de retorno será escrito nesta variável.

A função system() também tenta automaticamente limpar o buffer de saída do servidor mandando os dados para o browser após cada linha de saída se o PHP estiver sendo executado como módulo de servidor.

Pequeno exemplo:

[?php
echo '[pre]';

// Mostra todo o resultado do comando do shell "ls", e retorna
// a última linha da saída em $last_line. Guarda o valor de retorno
// do comando shell em $retval.
system('ls', $retval);

// Mostrando informação adicional
echo '
[/pre]
[hr /]Valor de Retorno: '.$retval;
?]

Quando valor de retorno for igual a '0' (zero), significa que nenhum erro foi gerado durante o comando. Caso retorne '1', verifique a sintaxe do seu comando e se ele está certo, faça um teste no terminal com o comando, pois retornou algum erro.

A variável $retval não é de obrigatoriedade, serve apenas para uma verificação do comando. Você não precisa inclusive utilizar-se desta $var, pode-se criar qualquer outra. Ex.:


[?php
system('uptime', $erro_uptime);
echo $erro_uptime;
?]

ou simplesmente:


[?php
system('uptime);
?]

Artigos deste Autor

Comentários

bad

bad Visualizar Perfil

15/03/2010 - 04:03:05

Fala magalhães beleza
Amigo voce tem algum script para que eu possa enviar email atraves do shell ??
Desde ja agradeço

magalhaes

magalhaes Visualizar Perfil

15/03/2010 - 04:03:17

#!/bin/bash


# Para a senha não ficar exposta recomendo usar o shc para gerar executavel binario deste script.
# Artigo em http://www.vivaolinux.com.br/dica/SHC-Compilando-seu-shell-script
# Publicado por http://www.vivaolinux.com.br/perfil/verPerfil.php?login=tarcio


EMAIL_FROM="usuario@ymail.com" # usuario de email que se autentica no servidor SMTP
EMAIL_TO="destino@provedor.com.br" # usuario que receberá os emails

#Servidor SMTP e porta utilizada
SERVIDOR_SMTP="smtp.mail.yahoo.com.br:587" #endereço no servidor SMTP, observar no exemplo o yahoo utiliza a porta 587
SENHA=senha #informe aqui a senha de autenticação no servidor SMTP

ASSUNTO="$HOSTNAME - $1"
MENSAGEM=$2

if [ "$1" == "" ] ;then
ASSUNTO="SEM ASSUNTO"
fi
if [ "$2" == "" ] ;then
MENSAGEM="SEM MENSAGEM"
fi
if [ "$3" != "" ] ;then
MENSAGEM="$2 `cat $3`"
fi



sendEmail -f $EMAIL_FROM -t $EMAIL_TO -u "$ASSUNTO" -m "$MENSAGEM" $ANEXO -s $SERVIDOR_SMTP -xu $EMAIL_FROM -xp $SENHA

----------
Creditos de Ivan Moretto

bad

bad Visualizar Perfil

15/03/2010 - 11:03:38

opa coloquei o script instalei o sendmail e configurei com uma conta do yahoo e senha mas retorna o seguinte erro "sendEmail[14834]: ERROR => Received: 530 Access denied"

lucimara

lucimara Visualizar Perfil

02/04/2010 - 07:04:48

Oi Magalhaes posso te fazer uma pergunta, é possível com o Shell Script controlar estações ? Por exemplo através de uma máquina controlar as estações linux em uma biblioteca como tempo de uso, aviso que vai acabar o tempo, vou ter que fazer algo parecido.
Obrigada

magalhaes

magalhaes Visualizar Perfil

16/06/2010 - 11:06:52

bad, seu usuario nao tem acesso para enviar email

lucimara, ter tem... mas acredito q será um pouco trabalhoso, já pensou em usar o squid com limite de acesso ?

[]´s

lucimara

lucimara Visualizar Perfil

21/06/2010 - 03:06:58

Magalhães o que eu quero fazer é mais complexo ou seja controlar a estação de trabalho como se fosse uma lan-house sabe

magalhaes

magalhaes Visualizar Perfil

21/06/2010 - 04:06:21

se a estação de trabalho usa linux torna-se facil, vc apenas aplica esse artigo para cada maquina, cria uma pagina em php, digamos que queira desligar, na pagina php vc lista as maquinas "online" e com um botao para ssh em cada estação. a diferença é que o comando estaria sendo executado na maquina 'terminal', e nao no servidor.. fale mais o que vc gostaria de fazer.. quem sabe posso te ajudar..

[]´s

Mapa do Site