触发脚本并响应的简单服务器

触发脚本并响应的简单服务器

我需要一个运行的服务器可以:

  1. 接听休息电话。调用时会触发脚本
  2. 该脚本检查数据库是否正在运行。
  3. 如果正在运行则回复客户端,否则Success回复失败

我不想使用 apache 或任何其他主要的网络服务器。即使是在端口上运行的简单脚本也可以。我知道,python -m SimpleHTTPServer但我猜它只提供文件访问。

我可以编写一个在端口上运行并回复的简单 Java 程序,但我正在寻找一些简单的解决方案

答案1

我能想到的最琐碎的服务之一是从 xinetd 运行一项服务。这样做的优点是 xinetd 本身相对轻量级,但仍会为您处理所有网络内容,包括日志记录和安全限制,例如请求限制、TCP 包装器等。

安装 xinetd(如果尚未安装)并定义自定义服务,例如 /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
}

重新加载/重新启动 xinetd,您可以使用telnet localhost 1234.

手册页man xinetd.conf对可用选项有很好的描述。

答案2

我会在 BASH 中借助一些简单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

nc这也需要设置客户端。也许还需要在客户端上设置nc监听命令才能收到成功回复。

该脚本还远未完成,您还应该为其编写客户端,但它可能会给您一些想法。

这里最基本的事情是使用nc.借助它,您可以建立简单的客户端-服务器架构。

答案3

我在寻找类似的解决方案时遇到了这个问题:去曝光

它允许基于 HTTP 调用触发许多任务,包括 shell。

相关内容