Académique Documents
Professionnel Documents
Culture Documents
Os scripts de Shell, sejam em linguagem BASH ou outro interpretador de comandos, são peça fundamental para
diminuir o tempo gasto com inúmeras linhas de comandos em servidores Linux,FreeBSD, Solaris, etc. O grande
problema é quando um cliente Windows precisa executar esta aplicação remotamente ou até quando se quer
construir uma interface mais "user friendly" para o programa.
Uma solução bem legal para este tipo de entrave é hospedar o script de Shell em um servidor Apache,
tornando-o acessível via Web Browser por qualquer workstation com qualquer navegador, ou seja: o programa
vai se tornar um CGI.
INSTALAÇÃO/CONFIGURAÇÃO DO APACHE2:
Agora temos que habilitar o funcionamento de CGI no Apache, assim como criar um Alias para o diretório onde
vão ficar os scripts que vão ser executados:
#vim /etc/apache2/sites-available/default
Nas linhas acima estamos carregando o módulo mod_cgi.so do Apache, o que habilita a interpretação de
aplicações CGI pelo serviço. Também estamos dizendo que o diretório onde será hospedada a aplicação será
o /usr/lib/cgi-bin, mas para o usuário o acesso será feito no alias /shell, por exemplo:
http://192.168.1.103/shell/index.sh.
*No caso do Red Hat, todo esse procedimento (feito ate agora) precisaria ser feito de outra forma.
howtoday.com.br Professor Bruno Odon
CRIANDO O SCRIPT
Criando o Index:
#vim /usr/lib/cgi-bin/index.sh
Repare que o "action" aponta para um arquivo chamado bkp.sh, que será efetivamente a aplicação que vai
executar o backup. Vamos agora criar esta aplicação:
#vim /usr/lib/cgi-bin/bkp.sh
howtoday.com.br Professor Bruno Odon
Explanando o script:
Primeiramente, vamos criar uma variável para a data, que vai receber a data do dia no formato dia-mês-ano,
para que o arquivo de backup seja exclusivo para cada dia.
A variável 'login' vai receber os dados da página index.sh no seguinte formato: login=valor, portanto, para
ficarmos apenas com o campo do valor, precisamos dar um "print" nessa variável obtendo apenas o campo do
valor, o que está sendo feito na criação da variável 'usr'.
A variável homedir vai buscar o diretório pessoal do usuário dentro do arquivo /etc/passwd (melhor forma de
saber exatamente qual o homedir do usuário).
Não podemos esquecer de que o usuário utilizado pelo Apache para ler e executar as páginas é o www-data (que
tem por grupo primário o www-data), sendo assim, vamos criar o diretório de backup e mudar o dono para
www-data:
#chmod +x /usr/lib/cgi-bin/index.sh
#chmod +x /usr/lib/cgi-bin/bkp.sh
Como resultado: