Bash - 在继续之前检查以确保网站可用,否则请休眠并重试
Bash - check to make sure website is available before continuing, otherwise sleep and try again
我有一个脚本想在 Linux 主机启动时执行,但它依赖于另一台主机上的 influxdb 运行ning。由于两台主机大约同时出现,我需要先启动 influxdb,然后才能 运行 我的脚本,否则脚本将失败。
我在想它应该是一个 bash 脚本,它首先使用 curl 检查端口是否可用。如果是,继续。如果不是,则休眠 30 秒,然后重试,依此类推。
到目前为止,我有正确的逻辑来检查 influxdb 是否已启动,但我不知道如何将其合并到 bash 脚本中。
if
curl --head --silent --fail http://tick.home:8086/ping 1> /dev/null
then echo "1"
else echo "0"
fi
如果结果为 1,则继续执行脚本。如果结果为 0,则休眠 30 秒,然后再次尝试 if 语句。最好的实现方式是什么?
试试
until curl --head --silent --fail http://tick.home:8086/ping 1> /dev/null 2>&1; do
sleep 1
done
我有一个脚本想在 Linux 主机启动时执行,但它依赖于另一台主机上的 influxdb 运行ning。由于两台主机大约同时出现,我需要先启动 influxdb,然后才能 运行 我的脚本,否则脚本将失败。
我在想它应该是一个 bash 脚本,它首先使用 curl 检查端口是否可用。如果是,继续。如果不是,则休眠 30 秒,然后重试,依此类推。
到目前为止,我有正确的逻辑来检查 influxdb 是否已启动,但我不知道如何将其合并到 bash 脚本中。
if
curl --head --silent --fail http://tick.home:8086/ping 1> /dev/null
then echo "1"
else echo "0"
fi
如果结果为 1,则继续执行脚本。如果结果为 0,则休眠 30 秒,然后再次尝试 if 语句。最好的实现方式是什么?
试试
until curl --head --silent --fail http://tick.home:8086/ping 1> /dev/null 2>&1; do
sleep 1
done