#!/bin/sh
### die naechsten 5Zeilen muessen/koennen angepaßt werden
USERNAME="meinBenutzer_bei_DYNDienst"
PASSW="meinPasswort_bei_DYNDienst"
DYNADDI="meinhost.dyndns.org"
LOGPFAD=/tmp/DynUpdateCheck.log
MAXLOGSIZE="100" # max Logfilegroesse in KB
#### wenn E-Mail-Benachrichtigung gewuenscht,
# dann Zugangsdaten unter den beiden "mailer" eintragen
# und hier unten "yes" eintragen
EMAIL="no"
############################### config-1 Ende ###############################################################
#############################################################################################################
DATUM=`date +%Y-%m-%d\ %H:%M:%S`
HOSTIP=$(wget -q -O - http://myip.dnsomatic.com)
[ -z $HOSTIP ] && HOSTIP=$(wget -q -O - http://www.whatismyip.org)
[ -z $HOSTIP ] && HOSTIP=$(wget -q -O - http://checkip.dyndns.org | grep IP | expr \`awk '{print $6}'\` : '\([0-9.]*\)')
####################################### config-2 Anfang ##########################################################
################ Update-Url -- hier nur eine Url auswaehlen! (also nur eine Zeile ohne "#") ######################
# DYNDNS:
URL="http://$USERNAME:$PASSW@members.dyndns.org/nic/update?hostname=$DYNADDI&myip=$HOSTIP"
# DNSOMATIC:
# URL="http://$USERNAME:$PASSW@updates.dnsomatic.com/nic/update?hostname=all.dnsomatic.com&myip=$HOSTIP"
# no_IP:
# URL="http://$USERNAME:$PASSW@dynupdate.no-ip.com/nic/update?hostname=$DYNADDI&myip=$HOSTIP"
##################################################################################################################
####################################### config-2 Ende ############################################################
if [ ! -z $HOSTIP ]; then
DYNIP=$(ping -c 1 "$DYNADDI" | sed -n 1p | sed -e 's/(//g' -e 's/)//g' | cut -d ' ' -f3 | cut -d ':' -f1)
if [ -z $DYNIP ]; then
echo "$DATUM - keine DYN-IP bekommen. Updatepruefung kann nicht ausgefuehrt werden. " >> $LOGPFAD
else
if [ $DYNIP = $HOSTIP ]; then
if [ -f $LOGPFAD ]; then
LOGGROESSE=$(du -k $LOGPFAD | cut -f 1 )
sleep 1
[ $MAXLOGSIZE -lt $LOGGROESSE ] && echo "$DATUM - DYN-IP ist:$DYNIP die Host-IP ist:$HOSTIP alles OK!" > $LOGPFAD
[ $MAXLOGSIZE -gt $LOGGROESSE ] && echo "$DATUM - DYN-IP ist:$DYNIP die Host-IP ist:$HOSTIP alles OK!" >> $LOGPFAD
else
echo "$DATUM - DYN-IP ist:$DYNIP die Host-IP ist:$HOSTIP alles OK!" >> $LOGPFAD
fi
else
echo "$DATUM - DYN-IP ist:$DYNIP die Host-IP ist:$HOSTIP ein Update wird durchgefuehrt!" >> $LOGPFAD
UPDATE=$(wget -q -O - "$URL")
if [ -z $UPDATE ]; then
echo "$DATUM - Dyn-Update war nicht erfolgreich. " >> $LOGPFAD
if [ $EMAIL = "yes" ]; then
mailer \
-s "Dynamic DNS Probleme - DynUpdate war nicht erfolgreich" \
-f sender@gmx.de \
-t empfang@xyz.com \
-m mail.gmx.net \
-a sender@gmx.de \
-w sender_pwd
fi
else
echo "$DATUM - $UPDATE Dyn-Update ist erfolgt - Script Ende" >> $LOGPFAD
if [ $EMAIL = "yes" ]; then
mailer \
-s "Dynamic DNS Probleme - DynUpdate ist erfolgt " \
-f sender@gmx.de \
-t empfang@xyz.com \
-m mail.gmx.net \
-a sender@gmx.de \
-w sender_pwd
fi
fi
fi
fi
else
echo "$DATUM Keine Host-IP bekommen! Eventuell nicht online?" >> $LOGPFAD
fi