#!/bin/bash DATE=$(TZ=Europe/Copenhagen date +"%F %H:%M:%S") ww=$(nmcli -g GENERAL.DEVICES con show door_sim | while read dev; do nmcli -g GENERAL.IP-IFACE device show "$dev"; done) #echo $ww ip_wwan0=$(/sbin/ip -o -4 addr list $ww | awk '{print $4}' | cut -d/ -f1) #echo $ip_wwan0 FREEDNS_DOMAIN_0=doorbell.doordk.com echo "$DATE $ww IP: $ip_wwan0 Domain: $FREEDNS_DOMAIN_0" static_address="80.91.3.214" # Returns true if iface exists and is up, otherwise false. function ifup { typeset output output=$(ip link show $ww up) && [[ -n $output ]] } if ifup $ww; then #echo "wwan0 exists and is up" ping -c1 "8.8.8.8" &>"/dev/null" if [[ "${?}" -ne 0 ]]; then echo "offline. Take action?" elif [[ "${#args[@]}" -eq 0 ]]; then #echo "online" if [ "$ip_wwan0" != "$static_address" ];then echo "$DATE No $static_address ip address. Take action?" #echo "No wwan0 $static_address ip address. Take action?" | systemd-cat -t wwan0_sim7600 -p emerg else #echo "We have wwan0 $ip_wwan0" if : >/dev/tcp/8.8.8.8/53; then #echo "$DATE wwan0 is on internet" #FREEDNS_DOMAIN_0=doorbell.doordk.com FREEDNS_DOMAINHASHKEY_0=NEp1d2VnZTRsbXNaRzB5dkdIb0tEZ0IxOjIwNjQzODQ5 registered_ip_0=$(ping -qn -c 1 $FREEDNS_DOMAIN_0 | head -n 1 | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}') #registered_ip_0=$(curl --silent "https://freedns.afraid.org/dynamic/update.php?$FREEDNS_DOMAINHASHKEY_0" | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}') UPDATE_URL_0="http://freedns.afraid.org/dynamic/update.php?$FREEDNS_DOMAINHASHKEY_0&address=$static_address" #echo "$DATE wwan0: $ip_wwan0 is on internet. Freedns reg ip addresse: $registered_ip_0" # if [ "$static_address" ] ; then if [ "$static_address" != "$registered_ip_0" ]; then echo "$DATE $FREEDNS_DOMAIN_0 Update from $registered_ip_0 to $static_address" wget -q --read-timeout=0.0 --waitretry=5 --tries=400 --background $UPDATE_URL_0 fi fi else echo "$DATE wwan0 is NOT on internet. Take action?" #echo "wwan0 is NOT on freedns internet. Take action?" | systemd-cat -t wwan0_sim7600 -p emerg fi fi fi else echo "wwan0 does not exists. Take action?" fi