utils/middleware/util/recipes-common/platform-util/scripts/connectivity_test

59 lines
1.1 KiB
Bash

#! /bin/bash
#
# Copyright (c) 2016 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
usage ()
{
echo "Usage: `basename $0` [-t TIMEOUT] [-i INTERFACE] DEST"
echo "Tests connectivity to DEST (hostname or IP). Test is done with ping/ping6."
echo ""
echo "Options:"
echo " -t TIMEOUT how long to wait before failing - defaults to 70 seconds"
echo " -i INTERFACE interface to use for ping - default is to allow ping command to select interface"
exit 1
}
TIMEOUT=70
IFARG=""
while getopts t:i: opt; do
case $opt in
t)
TIMEOUT=$OPTARG
;;
i)
INTERFACE=$OPTARG
;;
*)
usage
;;
esac
done
shift $((OPTIND-1))
if [ -z $1 ]; then
usage
fi
if [ ! -z "$INTERFACE" ]; then
IFARG="-I $INTERFACE"
IFMSG="over interface $INTERFACE"
fi
DEST=$1
echo "Checking connectivity to $DEST for up to $TIMEOUT seconds $IFMSG"
while [ "$SECONDS" -le "$TIMEOUT" ]; do
ping -c 1 $IFARG $DEST > /dev/null 2>&1 || ping6 -c 1 $IFARG $DEST > /dev/null 2>&1
if [ $? -eq 0 ]
then
exit 0
fi
sleep 1
done
exit 1