编写监听端口并执行操作的 shell 脚本

编写监听端口并执行操作的 shell 脚本

有人可以指点我如何编写一个 shell 脚本,该脚本不断监听某个端口,当某人/某物向该端口发送 HTTP 请求时,它会以 sudo 身份执行操作吗?

我需要从另一台服务器重新启动 nginx,但无法通过 SSH 连接到此服务器。因此,我正在寻找实现此目的的方法。我的想法是让服务器 A 不断监听某个端口,当服务器 B 向该端口发送请求时,服务器 A 会重新启动 nginx。

安全性应该不是问题。我将在 Ubuntu 14.0.4 LTS 上编写 shell 脚本

答案1

可以用来Netcat监听特定端口(示例中为 12345),然后检查其输出以了解接收到的内容,例如:

while test 1 # infinite loop
do
    nc -l localhost 12345 > /tmp/12345.log

    # check for start
    grep start /tmp/12345.log > /dev/null

    if test $? -eq 0 
    then
        startJob&
    else
        # check for stop
        grep stop /tmp/12345.log > /dev/null

        if test $? -eq 0 
        then
            stopJob&
        fi
    fi
done

也就是说,扩展基于 Web 的解决方案会更简单、更容易。

相关内容