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.
Parte 2: 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:
# 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>"
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.
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