
我需要一個運行的伺服器可以:
- 接聽休息電話。呼叫時會觸發腳本
- 該腳本檢查資料庫是否正在運行。
- 如果正在執行則回覆客戶端,否則
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。