Linux

如何使用 netcat 檢查多個遠端伺服器上的埠?

  • September 24, 2020

我在腳本文件中有以下幾行,等到 server1 中的埠 1521 打開並且 server2 打開,然後執行 start_apps.sh 腳本。

如何修改它以等到埠 1521 在任一伺服器(server1 或 server2)中打開,然後執行 start_apps.sh 腳本?

until (nc -z  server1 1521); do echo "$(date +'%Y-%m-%d %T') wait for server1";done
until (nc -z server2 1521); do echo "$(date +'%Y-%m-%d %T') wait for server2"; done
start_apps.sh

我會使用一個執行非阻塞檢查的循環。就像是:

#!/bin/sh
while [ 1 ]; do
   if [ $(nc -z server1 1521) ] || [ $(nc -z server2 1521) ]; then
       break
   fi
   sleep 1 # if desired
done
start_apps.sh

此循環將一直執行,直到滿足任一條件。

引用自:https://unix.stackexchange.com/questions/611063