觸發腳本並回應的簡單伺服器

觸發腳本並回應的簡單伺服器

我需要一個運行的伺服器可以:

  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。

相關內容