有人可以指点我如何编写一个 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 的解决方案会更简单、更容易。