Artigos: 32   Dicas: 104   Usuários: 157
Esqueceu sua senha? Cadastre-se
scriptsadmin
Distribuições Linux
trainingtecnologia
Linux mulheres
Várias distribuições atrapalham ou ajudam ?
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

3 - Criando Relatório

trainingtecnologia
Agora que sabemos como executar um determinado comando no terminal através de uma página em PHP, torna-se fácil a criação de um relatório.

Vamos criar um exemplo bem simples.

Inicie seu editor de Html preferido ou faça um a partir do zero. Lembrando que a página deverá ser salva em sua pasta de web, /var/www.

# touch relatorio.php

Edite o arquivo com qualquer programa de sua preferência. Eu gosto do 'mc':

# mc

Digamos agora que queremos um relatório do sistema, com alguns poucos comandos.

Tempo ativo -> uptime
memória livre -> free
processos em execução -> ps -A
usuários logados -> who

Use a imaginação e crie quaisquer comandos.

Você pode inclusive criar uma página que retornará todos os processos e com um botão dar um 'kill -9 $processo' onde $processo é a variável que será enviada ao sistema.

Vamos a criação: relatorio.php

[html]
[body]
[h1]RELATORIO SERVIDOR :: DEBIAN [/h1]
[br]
[h2]UPTIME:[/h2]
[?php
echo '[pre]';
system('uptime');
?]
[br]
[h2]MEMORIA:[/h2]
[?php
echo '[pre]';
system('free');
?]
[br]
[h2]PROCESSOS:[/h2]
[?php
echo '[pre]';
system('ps -A');
?]
[br]
[h2]USUÁRIOS:[/h2]
[?php
echo '[pre]';
system('who');
?]
[/body]
[/html]


Agora abra um browser e digite:

http://ip-servidor/relatorio.php

e divirta-se com o resultado.

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