Servidor HTTP em Bash
Publicado por Eduardo 01/02/2008
[ Hits: 6.027 ]
Esse script é um servidor HTTP funcional que responde a métodos GET. Porém perceba que ele só serve para aprender bash script, pois ele é bem inseguro e ainda tem vários bugs.
Para fazer esse script eu precisei instalar o programa socket (# aptitude install socket). Como só dá para subir um script, eu não pude mandar um script de inicialização que fiz (está no código fonte). Para inicializá-lo digite (como root):
# socket -lcsp ./servidor.bash 80
Ele busca as páginas em /var/www por padrão.
#!/bin/bash #Esse programa deve ser iniciado pelo script de inicialização "iniciaServidor" #Esse lançador vai garantir que a entrada e a saída padrão desse script seja a porta 80 (a porta http) #Pasta onde estão os arquivos do servidor PASTA="/var/www" #Arquivo padrão quando nenhum for especificado INDEX="index.html" #Lê da entrada padrão (no caso, a porta 80) e grava a primeira palavra em $METODO, a segunda em $PEDIDO e a terceira em PROTOCOLO read METODO PEDIDO PROTOCOLO #Esse servidor só entende métodos GET if [ "$METODO" = "GET" ] then #Método GET recebido: estão pedindo um arquivo #Se for encontrado e for uma pasta, retorna o INDEX if [ -d "$PASTA$PEDIDO" ] then PEDIDO="$PEDIDO$INDEX" fi #Se o arquivo não for encontrado... if [ ! -e "$PASTA$PEDIDO" ] then #Retorna um erro 404 echo "HTTP/1.x 404 Not Found" echo "Date: `date -R`" echo "Server: Servidor Bash" echo "Content-Length: 0" echo "" else #Se for encontrado retorna o arquivo echo "HTTP/1.x 200 OK" echo "Date: `date -R`" echo "Server: Servidor Bash" echo "Content-Length: `stat -c%s $PASTA$PEDIDO`" echo "Connection:Close" echo "" cat "$PASTA$PEDIDO" fi else echo "HTTP/1.x 501 Not implemented" echo "" fi #Abaixo segue como deve ser o script de inicialização. iniciaServidor.bash: #!/bin/bash socket -lcsp ./servidor.bash 80
Jftp Script - Script para automação de um processo FTP
Claro 3g Sony Ericsson md300 script conexao
NFS server/client com iptables
Nenhum comentário foi encontrado.
Como agendar um backup automático do PostgreSQL no Cron evitando o problema de senha
Como preparar o Vim/Neovim para corrigir ortografia em português
Dark Web e Malwares na internet, quanto custa?
Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop
Como verificar o hash de um arquivo baixado da Internet e como criar um hash
Debian 12 - IPTABLES - removendo NFTABLES
OverWatch 2 - Abrindo portas do jogo no Iptables.
Como instalar o adaptador wifi USB Intelbras ACtion A1200 no Linux Mint
Como normalizar seus arquivos MP3 para que fiquem no mesmo volume
Como Incorporar o Áudio no Executável ? (1)
O que você está ouvindo agora? [2] (130)
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba
[Shell Script] Tire screenshots com Scrot facilmente com Zscrot
[Shell Script] DioPSI - Script multidistro para instalar programas
[Shell Script] ARS Vídeos - Cortador de vídeos e webcam shooter