如何使用netcat检查多个远程服务器上的端口?

如何使用netcat检查多个远程服务器上的端口?

我在脚本文件中有以下几行,等待端口 1521 在 server1 和 server2 中打开,然后执行 start_apps.sh 脚本。

如何修改此设置以等到任一服务器(server1 或 server2)中的端口 1521 打开,然后执行 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

答案1

我会使用一个进行非阻塞检查的循环。就像是:

#!/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

该循环将一直运行,直到满足任一条件为止。

相关内容