我在脚本文件中有以下几行,等待端口 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
该循环将一直运行,直到满足任一条件为止。