#!/usr/bin/env bash addr="127.0.0.1" port=2601 function help() { echo "This script aims to ensure zebra is ready to accept connections" echo "Usage: $0 [options]" echo "Options:" echo " -a Zebra address" echo " -o Zebra port" exit 1 } while getopts ":a:o:h" opt; do case "${opt}" in h) help ;; a) addr=${OPTARG} ;; o) port=${OPTARG} ;; esac done start=$(date +%s.%N) timeout 5s bash -c -- "until </dev/tcp/${addr}/${port}; do sleep 0.1;done" if [ "$?" != "0" ]; then logger -p error "Error: zebra is not ready to accept connections" else timespan=$(awk "BEGIN {print $(date +%s.%N)-$start; exit}") logger -p info "It took ${timespan} seconds to wait for zebra to be ready to accept connections" fi exit 0