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.

24 lines
971 B

4 years ago
#!/bin/bash
nextip(){
IP=$1
IP_HEX=$(printf '%.2X%.2X%.2X%.2X\n' `echo $IP | sed -e 's/\./ /g'`)
NEXT_IP_HEX=$(printf %.8X `echo $(( 0x$IP_HEX + 1 ))`)
NEXT_IP=$(printf '%d.%d.%d.%d\n' `echo $NEXT_IP_HEX | sed -r 's/(..)/0x\1 /g'`)
echo "$NEXT_IP"
}
for fint in $(docker ps --format '{{ .Names }}' | grep "^swarmlabwg-"); do
v=$(docker inspect --format '{{.HostConfig.NetworkMode}}' $fint)
ip=$(docker exec $fint /bin/sh -c "wg show $v allowed-ips | cut -f2 | cut -d'/' -f1")
IP=$(nextip $ip)
#echo " -- $fint --- $v -- $ip -- $IP"
if $(docker exec $fint /bin/sh -c "ping -q -w 2 $IP > /dev/null"); then
echo "ok:$fint"
else
docker stop $fint > /dev/null
docker container rm $fint > /dev/null
echo "stop:$fint"
fi
done