Ubuntu

編寫偵聽埠並執行操作的 shell 腳本

  • May 21, 2016

任何人都可以指導我如何編寫一個不斷偵聽埠的 shell 腳本,當某人/某物向該埠發送 HTTP 請求時,它會以 sudo 的形式執行操作?

我需要從另一台伺服器重新啟動 nginx,並且無法通過 SSH 連接到該伺服器。所以我正在尋找實現這一目標的方法。我的想法是讓伺服器 A 不斷地監聽一個埠,當伺服器 B 發送該埠上的請求時,伺服器 A 重新啟動 nginx。

安全應該不是問題。我將在 Ubuntu 14.0.4 LTS 上編寫 shell 腳本

可以使用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 的解決方案會更簡單、更容易。

引用自:https://serverfault.com/questions/778144