Clarion30
Ist gelegentlich hier
- Registriert
- 7. Dezember 2011
- Beiträge
- 44
- Reaktionspunkte
- 7
- Punkte
- 28
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
hat sich erledigt mache das jetz mit ddclient
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 -
### 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 -
[ -z $HOSTIP ] && HOSTIP=`wget -q -O -
[ -z $HOSTIP ] && HOSTIP=$(wget -q -O -
[ -z $HOSTIP ] && HOSTIP=$(wget -q -O -
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
### 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 -
Sie müssen registriert sein, um Links zu sehen.
)### 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 -
Sie müssen registriert sein, um Links zu sehen.
| grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>')[ -z $HOSTIP ] && HOSTIP=`wget -q -O -
Sie müssen registriert sein, um Links zu sehen.
| grep IP | expr \`awk '{print $6}'\` : '\([0-9.]*\)'`[ -z $HOSTIP ] && HOSTIP=$(wget -q -O -
Sie müssen registriert sein, um Links zu sehen.
| grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>')[ -z $HOSTIP ] && HOSTIP=$(wget -q -O -
Sie müssen registriert sein, um Links zu sehen.
)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: