Servidor simples que aciona o script e responde

2

Eu preciso de um servidor muito simples que possa:

  1. Faça uma chamada de descanso. Ele aciona um script quando uma chamada é feita
  2. O script verifica se o banco de dados está em execução ou não.
  3. Se estiver em execução, responda ao cliente como Success else responda de volta como falha

Eu não desejo usar o Apache ou qualquer outro servidor web importante. Mesmo simples scripts rodando na porta servirão. Estou ciente de python -m SimpleHTTPServer , mas acho que só fornece acesso a arquivos.

Eu posso escrever um programa Java simples que seja executado em uma porta e responda, mas estou procurando uma solução simples

    
por Jatin 26.06.2014 / 11:25

2 respostas

3

Um dos serviços mais triviais que posso imaginar é rodar um do xinetd. Isso tem a vantagem de o xinetd em si ser relativamente leve, mas ainda vai lidar com todas as coisas de rede para você, incluindo restrições de registro e segurança, como limitação de solicitações, TCP-wrappers, etc.

Instale o xinetd, quando ainda não estiver instalado e defina um serviço personalizado como /etc/xinetd.d/helloworld :

service helloworld
{
    disable         = no
    port            = 1234
    socket_type     = stream
    protocol        = tcp
    wait            = no
    user            = nobody
    server          = /usr/local/bin/hello-world.sh
    server_args     = test
    instances       = 1
    type            = unlisted
}

Recarregue / reinicie o xinetd e você pode testar com telnet localhost 1234 .

A página de manual man xinetd.conf tem uma boa descrição das opções disponíveis.

    
por 26.06.2014 / 14:45
2

Eu faria isso no BASH com a ajuda de alguns comandos simples do nc :

#!/bin/bash

nc -k -l -p PORT > tempfile

while true
do
    if cat tempfile | grep request;
    then
        # Execute checker script
        # Reply back with nc
        : > tempfile # Clear tempfile
    fi
    sleep 1
done

Isso exigiria a configuração do cliente com nc também. Talvez a configuração de um comando nc listen no cliente também seja necessária para receber a resposta de sucesso.

Esse script está longe de ser completo e você também deve escrever o cliente para ele, mas ele pode lhe dar algumas idéias.

O básico aqui é o uso de nc . Com a ajuda dele, você pode configurar arquiteturas cliente-servidor simples.

    
por 26.06.2014 / 12:02