我需要一个运行的服务器可以:
- 接听休息电话。调用时会触发脚本
- 该脚本检查数据库是否正在运行。
- 如果正在运行则回复客户端,否则
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。