Relatório de sistema via browser (shell script + CGI)

Um bom administrador de redes tem que estar atento aos detalhes provenientes do seu servidor Linux. Uma forma simples e fácil é pelo uso eficaz de relatórios de sistema. Aqui vou mostrar uma forma de fazer um relatório com shell script + CGI, podendo ser visualizado remotamente via internet através de seu servidor web.

[ Hits: 56.608 ]

Por: William França em 06/10/2006


Entendendo o CGI e preparando o terreno



Bom, vamos criar um arquivo na pasta /usr/cgi-bin chamado relatorio.cgi e vamos dar poder de execução para o mesmo.

# touch relatorio.cgi
# chmod + x relatorio.cgi


Agora usaremos um editor de textos de sua preferência e começaremos a meter a mão na massa.

# pico relatorio.cgi

Quando se programa em shell script através do CGI, temos que total liberdade para usar tags HTML. Para trabalharmos com o CGI sempre teremos que definir esta tag:

echo Content-type: text/plain

Mas se quisermos melhorar o visual do nosso relatório através do HTML, mudaremos a sintaxe para:

echo Content-type: text/html

Por exemplo:

#!/bin/bash

  echo "Content-type: text/html"
  echo
  echo
  echo "<html> <head> <title> Exemplo de CGI </title> </head>"
  echo "<body>"
  
  CONT="/tmp/contador.log"
  
  n="$(cat $CONT 2> /dev/null)" || x=0
  echo $((x=x+1)) > "$CONT"
  
  echo "
  <h1>Já passaram nesta página: $x engraçadinhos</h1>
  <br>
  
  </body>
  </html>"

Bom, agora que vocês já sabem como funciona o CGI, vamos entender o propósito central desta matéria, que é fazer o bendito relatório.

Página anterior     Próxima página

Páginas do artigo
   1. Configuração
   2. Entendendo o CGI e preparando o terreno
   3. Lógica do relatório e dependências
   4. relatorio.cgi
   5. Segurança do CGI e considerações finais
Outros artigos deste autor

Simples sistema de backup com acesso remoto

Leitura recomendada

Monitoramento de pops para provedores

Redundância de link de internet

Gerar músicas aleatórias com YAD (Modo Gráfico)

Monitorando servidores pelo celular

BackRE - Seu script de backup remoto

  
Comentários
[1] Comentário enviado por pacman em 06/10/2006 - 18:22h

Fazer CGI-BIN em Bash é muito divertido :)

Sugestão: para evitar 4750834750345 echo "...." pode ser feito algo assim

cat <<EOF
Content-type: text/html

<html> <head> <title> Exemplo de CGI </title> </head>
...
EOF

Abraço

[2] Comentário enviado por coffani em 06/10/2006 - 18:48h

Excelente artigo Wilian, vou usar nos meus servers, tenhos uns mais saum separados pra cada serviço esse ai apesar de simples é bem funcional.. Parabéns.

[3] Comentário enviado por balani em 08/10/2006 - 01:19h

Cara muito bom seu artigo, parabens, sera muito util para mim, vlw

[4] Comentário enviado por williamcrazy em 17/10/2006 - 21:58h

Obrigado, fico feliz em saber que ajudei de alguma forma alguem, pois é muito importante temos o efetivo controle de nossos servidores para manter a casa em ordem, pois o linux é uam excelente plataforma e bem segura, mais o linux só será isso tudo se por de trás tiver um hacker preparado e disposto a aprender cada vez mais, do contrário o linux pode ser uma brecha para dor de cabeça sua e da empresa que você trabalha, e nada melhor do que usar estes tipos de soluções para estar a par do que circula na sua rede.

[5] Comentário enviado por cleitão em 05/12/2006 - 15:23h

Cara bem legal mesmo da pra fazer o cgi funcionar de forma simples e rápida....

Valeu!!!!!!!!!

[6] Comentário enviado por dtux em 28/02/2007 - 23:53h

BOA CARA!!!!!!!!!!!!!!!!

[7] Comentário enviado por coffani em 09/06/2008 - 23:18h

kra... muito bacana seu artigo... muito bem feito, parabens.. vai pro meu favoritos..

[8] Comentário enviado por removido em 12/06/2008 - 03:09h

Parabéns...

[9] Comentário enviado por wagner_guitar em 26/11/2008 - 18:20h

eu instalei o apache , mas nao tem esse arquivo httpd.conf,
sabe o que acontece?????
e ai,o que faco???

desde ja agradeco!!!!!!!

[10] Comentário enviado por williamcrazy em 27/11/2008 - 12:56h

Prezado Wagner Guitar,
o arquivo httpd.conf está presente na pasta que quarda as configurações do seu webserver Apache, dependendo da distro ou da pré-configuração de instalação, podemos encontralo em diferentes lugares.
Na maioria das instalações encontramos ele na pasta /etc/apache ou /etc/apache2 (OBS: Se você está usando o Apache 2, o arquivo que você deve editar é o apache2.conf [ /etc/apache2/apache2.conf], embora exista um httpd.conf, o mesmo serve para outros própositos.) Na dúvida leia o arquivo README, logo no inicio ele indica o arquivo de configuração default (padrão)
Se nada resolver, execulte o seguinte comando: find / -name httpd.conf
E sairá na tela uma gama de resultados com os possiveis diretórios pelos quais seu httpd.conf poderá estar presente, se não resolver tente find / -name apache2.conf

O comando dará um retorno parecido com o seguinte:
/etc/apache/httpd.conf
/etc/apache2/httpd.conf
/var/www/downloads/httpd.conf
/var/www/secreto/confs/httpd.conf

/usr/share/doc/apache/examples/httpd.conf
/usr/share/apache/default-configs/apache-perl/httpd.conf
/usr/share/apache/default-configs/apache-ssl/httpd.conf
/usr/share/apache/default-configs/apache/httpd.conf
/home/www/secreto/httpd.conf

A primeira linha do retorno dá o caminho a ser seguido. Conte conosco!!!

Atenciosamente,
William França (SLACKWARE ATÉ A MORTE)

[11] Comentário enviado por cardelli em 13/04/2010 - 10:54h

Já utilizei cgi.... mas com o apache2 não esta rolando...



como faço para adicionar o modulo do cgi no arquivo apache2.conf?

[12] Comentário enviado por joaopaulobrinate em 11/09/2010 - 09:53h

Cara parabens pelo material viu mto bom mesmo... rapaz talvez vc possa me ajudar!!! veja so o que estou precisando. " TO PRECISANDO CADASTRAR USUARIOS NO PPTPD VIA CGI, E EU NAO SEI NADA DE CGI SE VC PUDER ME DAR UMA FORÇA OBRIGADO VIU" QUAL O SEU MSN?

[13] Comentário enviado por nielsenyuri em 15/02/2011 - 16:50h

material muito bom mesmo,ja estou testando


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts