Skip to content

Instantly share code, notes, and snippets.

@makotom
Created August 21, 2014 04:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save makotom/964400818dd780affe2d to your computer and use it in GitHub Desktop.
Save makotom/964400818dd780affe2d to your computer and use it in GitHub Desktop.
Congestion-adaptive route selector
#!/usr/bin/bash
DEVS=("ppp0" "ppp1")
dev_best=${DEVS[0]}
ping_best=0
for dev in ${DEVS[@]}
do
if ! ip link show $dev 2>/dev/null > /dev/null
then
continue
fi
ping_cur=$(ping -q -I $dev -f -c 200 -s 1016 vps1.makotom.org | grep rtt | sed -e 's/^.*[[:digit:].]*\/[[:digit:].]*\/[[:digit:].]*\/\([[:digit:]][[:digit:]]*\).\([[:digit:]]\{3\}\) *.*/\1\2/g')
if [ $ping_best -eq 0 ] || [ $ping_cur -lt $ping_best ]
then
dev_best=$dev
ping_best=$ping_cur
fi
done
ip route replace default dev $dev_best
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment