You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

65 lines
1.5 KiB

#!/bin/bash
if [ -z ${1} ] ; then
echo "usage: status.sh interface "
exit
fi
CHECK="off";
ACTIVITY="off";
net=${1}
ping_c=2 # stop after sending packets
ping_i=1 # set interval in seconds
ping_w=2 # timeout in seconds
ping_iptmp=$(ip addr show $net | grep -o "inet [0-9]*\.[0-9]*\.[0-9]*" | grep -o "[0-9]*\.[0-9]*\.[0-9]*")
ping_ip="$ping_iptmp.1"
#ping_ip=10.13.13.1
if [[ -d /sys/class/net/$net ]]; then
CHECK="on";
T1=$(cat /sys/class/net/$net/statistics/tx_bytes)
ping -I $net -c $ping_c -i $ping_i -w $ping_w $ping_ip &> /dev/null
T2=$(cat /sys/class/net/$net/statistics/tx_bytes)
tot=$(( (T2 - T1)))
if [ $tot -ne 0 ]; then
ACTIVITY="on";
fi
fi
#echo "check $CHECK activity $ACTIVITY"
if [ "$CHECK" == "on" ] && [ "$ACTIVITY" == "on" ] ; then
hybridswarm='Online'
else
hybridswarm='NotOnline'
fi
dockerswarm=$(docker info --format "{{json .}}" | jq .Swarm.LocalNodeState)
tempswarm="${dockerswarm%\"}"
tempswarm="${tempswarm#\"}"
dockerswarm=$tempswarm
if [ "$dockerswarm" == "active" ] ; then
dockerswarmid=$(docker info --format "{{json .}}" | jq .Swarm.NodeID)
tempswarm1="${dockerswarmid%\"}"
tempswarm1="${tempswarm1#\"}"
swarmlabid=$tempswarm1
else
swarmlabid="-1";
fi
if [ -z "$dockerswarm" ] ; then
dockerswarm=none
fi
jq \
--arg key0 'swarmlab' --arg swarmlab $dockerswarm \
--arg key1 'hybrid' --arg hybrid $hybridswarm \
--arg key2 'swarmlabid' --arg swarmlabid $swarmlabid \
'. | .[$key0]=$swarmlab | .[$key1]=$hybrid | .[$key2]=$swarmlabid' <<<'{}'