Bash - убедитесь, что веб-сайт доступен, прежде чем продолжить, в противном случае спите и попробуйте снова - PullRequest
2 голосов
/ 08 апреля 2020

У меня есть сценарий, который я хочу выполнить при запуске хоста Linux, но это зависит от того, на каком компьютере выполняется diffxdb. Поскольку оба хоста запускаются примерно в одно и то же время, перед запуском моего скрипта мне нужно запустить прилив, иначе сценарий завершится ошибкой.

Я думал, что это должен быть скрипт bash, который сначала проверяет, порт доступен с помощью curl. Если это так, продолжайте. Если это не так, то поспите 30 секунд и попробуйте снова, и так далее.

Пока у меня есть правильный лог c, чтобы проверить, работает ли Infliffb, но я не могу понять, как включить это в скрипт 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 еще раз. Каков наилучший способ достижения sh?

1 Ответ

1 голос
/ 08 апреля 2020

попробуй с

until curl --head --silent --fail http://tick.home:8086/ping 1> /dev/null 2>&1; do
    sleep 1
done
...