Servidor simples que aciona script e responde

Servidor simples que aciona script e responde

Preciso ter um servidor em execução 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, caso Successcontrário, responda como falha

Não desejo usar o Apache ou qualquer outro servidor web importante. Até mesmo scripts simples executados na porta servirão. Estou ciente, python -m SimpleHTTPServermas acho que apenas fornece acesso a arquivos.

Posso escrever um programa Java simples que roda em uma porta e responde, mas estou procurando uma solução simples

Responder1

Um dos serviços mais triviais que posso imaginar é executar um no xinetd. Isso tem a vantagem de que o xinetd em si é relativamente leve, mas ainda irá lidar com todo o material de rede para você, incluindo registro e restrições de segurança, como limitação de solicitações, wrappers TCP, 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ê poderá testar com um arquivo telnet localhost 1234.

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

Responder2

Eu faria isso no BASH com a ajuda de alguns nccomandos simples:

#!/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 nctambém. Talvez também seja necessário configurar um nccomando de escuta no cliente para receber a resposta de sucesso.

Este script está longe de estar completo e você também deve escrevê-lo para o cliente, mas 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.

Responder3

Encontrei isso enquanto procurava uma solução semelhante:Goexpor.

Permite disparar uma série de tarefas incluindo shell, com base em chamadas HTTP.

informação relacionada