#! /bin/bash PASSWORD="" DOMAIN="" usage(){ cat << EOF usage: update-ipv6 [OPTIONS] -p [PASSWORD] -d [DOMAIN_NAME] Dynamic DNS script helper that updates records in freedns.afraid.org if the IPV6 address has been changed. Options: -f Force update in record even if IP hasn't change --dry Shows if the IP addres has changed without updating it EOF exit 1 } if [[ $# -lt 4 ]] ; then usage fi for option in $@; do case $option in -p) PASSWORD=$2 shift 2;; -d) DOMAIN=$2 shift 2;; -f) FORCE=true;; --dry) DRY=true;; *) usage;; esac done echo pass $PASSWORD domain $DOMAIN force $FORCE dry $DRY exit 0 echo $address if [[ $DRY ]]; then exit 1; fi addresses=$(/usr/sbin/ifconfig eth0 | grep 'inet6.*global>' | awk '{ print $2 }'); GREAT=0 add="" for address in $addresses; do secs=$(/usr/sbin/ip addr show dev eth0 | grep -A1 $address | grep -v $address | awk '{ print $2}') if [ $GREAT -gt ${secs/sec/} ] || [ $GREAT == 0 ]; then GREAT=${secs/sec/} add=$address fi done if [[ $add ]] && [[ -z $(grep $add /etc/haproxy/haproxy.cfg ) ]] ; then hadd=$(cat /etc/haproxy/haproxy.cfg | grep -m 1 'bind.*ssl' | awk '{ print $2 }'); sed -i s/${hadd::-4}/$add/ /etc/haproxy/haproxy.cfg date echo curl --user "nextia365:$PASSWORD" -XPOST http://freedns.afraid.org/nic/update?hostname=$DOMAIN\&myip=$add curl --user "nextia365:$PASSWORD" -XPOST http://freedns.afraid.org/nic/update?hostname=$DOMAIN\&myip=$add systemctl restart haproxy else echo Unchanged if [[ $FORCE ]]; then curl --user "nextia365:$PASSWORD" -XPOST http://freedns.afraid.org/nic/update?hostname=$DOMAIN\&myip=$add fi fi