1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Talk Dnsomatic script von Fritbox auf Raspi

Dieses Thema im Forum "Raspberry Pi" wurde erstellt von Clarion30, 17. Dezember 2013.

  1. Clarion30
    Offline

    Clarion30 Ist gelegentlich hier

    Registriert:
    7. Dezember 2011
    Beiträge:
    36
    Zustimmungen:
    1
    Punkte für Erfolge:
    8
    Hallo,

    habe jetzt meinen Raspberry am laufen und möchte noch ein Script hier aus der Database "mitnehmen" auf der Fritte lief es beim Raspberry nur bedingt.

    Es funktioniert dyndns update und log file schreiben ich bekomme nur keine email crontab wird alle 5 min. ausgeführt

    hier das Script vielleicht kann einer mal drüber schauen wo der Fehler ist Daten sind keine eingegeben.


    Gruß und danke Clarion
    ############################## config - Bereich ######################################################
    ### Usernamen, PW und Dyndns-Adresse eintragen ############

    USERNAME="name"
    PASSW="passwort"
    DYNADDI="dyn.dyndns.org"
    LOGPFAD=/var/log/DynUpdateCheck.log # SpeicherOrt des LogFile
    MAXLOGSIZE="100" # max Logfilegroesse in KB

    ### Dyn-Dienst hier eintragen, 3 Moeglichkeiten - "dyndns" oder "no-ip" oder "dnsomatic" ############
    DYNDIENST="dnsomatic"


    #### wenn E-Mail-Benachrichtigung gewuenscht,
    ## dann Zugangsdaten hier eintragen
    EMAIL="yes" # und hier "yes" eintragen
    FROMMAIL="sender@gmx.de" # E-Mail Versender
    TOMAIL="empfaenger@gmx.de" # E-Mail-Empfänger
    MAILSRV="mail.gmx.net" # MAIL-SMTP-Server
    PWMAIL="password" # Passwort vom Mailkonto

    ############################### config Ende ###############################################################
    #############################################################################################################

    DATUM=`date +%Y-%m-%d\ %H:%M:%S`
    HOSTIP=$(wget -q -O -

    Dieser Link ist nur für Mitglieder!!! Jetzt kostenlos Registrieren ?

    )
    ### die folgende Zeile nur auf einer Fritzbox aktiviert lassen (auf einer Dream z.B. gibt es kein "get_ip")#
    #[ -z $HOSTIP ] && HOSTIP=$(/usr/bin/get_ip -e)
    ###
    [ -z $HOSTIP ] && HOSTIP=$(wget -q -O -

    Dieser Link ist nur für Mitglieder!!! Jetzt kostenlos Registrieren ?

    | grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>')
    [ -z $HOSTIP ] && HOSTIP=`wget -q -O -

    Dieser Link ist nur für Mitglieder!!! Jetzt kostenlos Registrieren ?

    | grep IP | expr \`awk '{print $6}'\` : '\([0-9.]*\)'`
    [ -z $HOSTIP ] && HOSTIP=$(wget -q -O -

    Dieser Link ist nur für Mitglieder!!! Jetzt kostenlos Registrieren ?

    | grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>')
    [ -z $HOSTIP ] && HOSTIP=$(wget -q -O -

    Dieser Link ist nur für Mitglieder!!! Jetzt kostenlos Registrieren ?

    )

    sleep 1

    [ $DYNDIENST = "dyndns" ] && URL="http://$USERNAME:$PASSW@members.dyndns.org/nic/update?hostname=$DYNADDI&myip=$HOSTIP"
    [ $DYNDIENST = "dnsomatic" ] && URL="http://$USERNAME:$PASSW@updates.dnsomatic.com/nic/update?hostname=all.dnsomatic.com&myip=$HOSTIP"
    [ $DYNDIENST = "no-ip" ] && URL="http://$USERNAME:$PASSW@dynupdate.no-ip.com/nic/update?hostname=$DYNADDI&myip=$HOSTIP"

    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

    if [ $MAXLOGSIZE -le $LOGGROESSE ]; then

    if [ $EMAIL = "yes" ]; then
    mailer \
    -s "DynUpdateCheck max Logfilegroesse erreicht - Logfile wird geloescht" \
    -d "$LOGPFAD" \
    -f $FROMMAIL \
    -t $TOMAIL \
    -m $MAILSRV \
    -a $FROMMAIL \
    -w $PWMAIL

    sleep 15
    fi

    echo "$DATUM - DYN-IP ist:$DYNIP die Host-IP ist:$HOSTIP alles OK!" > $LOGPFAD
    fi

    [ $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")
    echo "$UPDATE" > /tmp/DynTMP.log
    sleep 2
    MELDUNG=$(cut -d' ' -f 1 /tmp/DynTMP.log)

    if [ $MELDUNG = "good" ]; then
    echo "$DATUM - $UPDATE Dyn-Update ist erfolgt - Script Ende" >> $LOGPFAD

    if [ $EMAIL = "yes" ]; then
    mailer \
    -s "Dynamic DNS Probleme - DynUpdate ist erfolgt Meldung: $UPDATE" \
    -f $FROMMAIL \
    -t $TOMAIL \
    -m $MAILSRV \
    -a $FROMMAIL \
    -w $PWMAIL

    fi
    else
    echo "$DATUM - Dyn-Update war nicht erfolgreich." >> $LOGPFAD

    if [ $EMAIL = "yes" ]; then
    mailer \
    -s "Dynamic DNS Probleme - DynUpdate war nicht erfolgreich Meldung: $UPDATE" \
    -f $FROMMAIL \
    -t $TOMAIL \
    -m $MAILSRV \
    -a $FROMMAIL \
    -w $PWMAIL
    fi

    fi

    fi
    fi

    else
    echo "$DATUM Keine Host-IP bekommen! Eventuell nicht online?" >> $LOGPFAD

    fi



    hat sich erledigt mache das jetz mit ddclient
     
    Zuletzt bearbeitet: 19. Dezember 2013
    #1

Diese Seite empfehlen