jaHaut das mit dem crontab so hin?
genau genommen nein. der port kann bei SMTPSERVER eingetragen werden also zum beispiel SMTPSERVER='mail.gmx.net:25' aber 25 der standard port der auch verwendet wird wenn man ihn dort nicht angibt.. allerdings kommt es auf den jeweiligen anbieter an welcher port genutzt werden muss, das ist nämlich nicht immer der standard portFehlt da nicht noch der Port?
#!/bin/bash
#
# dyndns web-login. version: 1.21
#
# credits: mxer (www.digital-eliteboard.com), jensebub (IPC.pebkac.at), feissmaik (IPC.pebkac.at)
#
# DynDNS Benutzername
USERNAME="login"
# DynDNS Passwort
PASSWORD="pass"
# Logfile. wenn nicht gewuenscht leer lassen ($0 bewirkt das der dateiname des scripts genutzt wird)
LOGFILE="/tmp/$(basename $0).log"
# Maximale Logfile Grösse in Bytes? (leer lassen falls unbegrenzt) (512000 bytes = 500 kilobytes = 0.48 megabytes)
MAXLOGSIZE="512000"
# falls MAXLOGSIZE genutzt wird: Logfile rotieren(1) oder löschen(0)?
LOGROTATE=0
# EMail verschicken? 0 = Nein, 1 = Ja (Vorraussetzung: apt-get install sendEmail)
SENDMAIL="1"
# EMail nur bei Problemen verschicken? 0 = Nein, 1 = Ja
BUGMAIL="0"
# EMail Absender
SMTPFROM="`hostname`@fqdn.net"
# EMail Empfänger
SMTPTO='an@e-mail.de'
# EMail Server Adresse (falls port vom std. 25 abweicht, inform von HOST:PORT angeben)
SMTPSERVER='mail.anbieter.de'
# EMail Benutzername
SMTPUSER='user'
# EMail Passwort
SMTPPASS='pass'
# TLS verwenden? 0 = Nein, 1 = Ja
SMTPTLS='0'
# CONFIG - END
#- variables
COOKIE=/tmp/ddnsweblogin_cookie
OUTPUT=/tmp/ddnsweblogin_output
MULTIFORM=/tmp/multiform
TIMESTAMP=$(date +"%d.%m.%Y %H:%M:%S")
UA='Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6'
aDYN="https://account.dyn.com/"
SUBJECT1="Dyndns Login successful"
MESSAGE1="Dyndns Login wurde vom `hostname -f` erfolgreich durchgeführt!"
SUBJECT2="Dyndns Login failed"
MESSAGE2="ACHTUNG! Dyndns Login über `hostname -f` ist fehlgeschlagen!"
#- functions
# write and check log
_LOG() {
if [ -n "$LOGFILE" ]; then
#check size of logfile
if [ -n "$MAXLOGSIZE" ] && [ -f "$LOGFILE" ] && [ "$(stat --printf="%s" $LOGFILE)" -gt "$MAXLOGSIZE" ]; then
if [ "$LOGROTATE" = 1 ]; then
echo "rotating log $LOGFILE"
mv -f $LOGFILE ${LOGFILE}.1 >/dev/null 2>&1
else
echo "resetting log $LOGFILE"
rm -f $LOGFILE >/dev/null 2>&1
fi
touch $LOGFILE
fi
echo "[$TIMESTAMP] $1" >> $LOGFILE
fi
}
#E-Mail senden
mailsend() {
if [ -n "$SMTPTLS" ]; then
[ $SMTPTLS = 1 ] && OPT="-o tls=yes" || OPT="-o tls=no"
else
OPT=""
fi
echo "Sende E-Mail..."
sendEmail -f $SMTPFROM -t $SMTPTO -u $1 -m $2 $OPT -s $SMTPSERVER -xu $SMTPUSER -xp $SMTPPASS
}
# Simple URL encoding
proc_url_encode() {
out=${1//%/%25}; out=${out//\{/%7B}; out=${out//\}/%7D}; out=${out//|/%7C};
out=${out//\\/%5C}; out=${out//^/%5E}; out=${out//~/%7E}; out=${out//[/%5B};
out=${out//]/%5D}; out=${out//\`/%60}; out=${out//#/%23}; out=${out//>/%3E};
out=${out//\$/%24}; out=${out//&/%26}; out=${out//+/%2B}; out=${out//,/%2C};
out=${out//\//%2F}; out=${out//:/%3A}; out=${out//;/%3B}; out=${out//=/%3B};
out=${out//\?/%3F}; out=${out// /%20}; out=${out//</%3C};
out=${out//\!/%21}; out=${out//\"/%22}; out=${out//\@/%40}; out=${out//\'/%27};
out=${out//\(/%28}; out=${out//\)/%29}; out=${out//\*/%2A}; out=${out//\-/%2D};
out=${out//\_/%5F}; out=${out//\./%2E}; out=${out//\€/%80};
echo $out
}
#- main code
# encode username / password
USER=$(proc_url_encode "$USERNAME")
PASS=$(proc_url_encode "$PASSWORD")
if [ "$?" -gt 0 ]; then
USER=$USERNAME
PASS=$PASSWORD
fi
wget -q -O $MULTIFORM -U "$UA" --save-cookies $COOKIE $aDYN
MULTIFORMo=$(grep -m1 multiform $MULTIFORM | tr '=' '\n' | tail -1 | cut -d "'" -f 2)
wget -q -O $OUTPUT -U "$UA" --load-cookies $COOKIE --save-cookies $COOKIE --post-data "username=$USER&password=$PASS&iov_id&multiform=$MULTIFORMo" $aDYN
if grep -E "Welcome.*$USERNAME" $OUTPUT >/dev/null 2>&1 || "Hi.*$USERNAME" $OUTPUT >/dev/null 2>&1
then
echo "$SUBJECT1"
_LOG "$SUBJECT1"
[ $SENDMAIL = 1 ] && [ $BUGMAIL = 0 ] && mailsend "$SUBJECT1" "$MESSAGE1"
else
echo "$SUBJECT2"
_LOG "$SUBJECT2"
[ $SENDMAIL = 1 ] && mailsend "$SUBJECT2" "$MESSAGE2"
fi
rm -f $COOKIE $OUTPUT $MULTIFORM
exit 0
# EOF
/var/emu/script/dyndns.sh: 94: Syntax error: "(" unexpected
# EMail Absender SMTPFROM="`hostname`@fqdn.net"
problem sollte nun behoben seinMorgen, eben nochmal kurz vor der Arbeit getestet. Bekomme folgende Fehlermeldung
das hab ich doch oben bereits ausführlich beschrieben was in SMTPFROM hinein müsste also lass das doch einfach mal so wie es ist und probier es aus?Was genau muss ich in Zeile 29 nun eintragen?
es wär gut wenn du keine doppel posts machst und somit den thread hier nicht unnötig strapazierst
das hab ich doch oben bereits ausführlich beschrieben was in SMTPFROM hinein müsste
/var/emu/script/dyndns.sh: 110: Bad substitution
/var/emu/script/dyndns.sh: 111: Bad substitution
Dyndns Login failed
/var/emu/script/dyndns.sh: 126: cannot create /tmp//var/emu/script/dyndns.sh.log: Directory nonexistent
Sende E-Mail...
Jul 15 16:14:34 cs-server sendEmail[19117]: Email was sent successfully!
- benötigt keine zusätzlichen pakete (nutzt wget anstatt curl)
hm, schade. anscheint kommt sh nicht mit proc_url_encode zurecht..Jetzt kommen folgende Fehlermeldungen bei mir.Code:/var/emu/script/dyndns.sh: 110: Bad substitution /var/emu/script/dyndns.sh: 111: Bad substitution Dyndns Login failed
#!/bin/sh
#!/bin/bash
dann stell LOGFILE entsprechend ein oder benutzUnd der log soll eigentlich nach var/log/*.log
LOGFILE="/var/log/$(basename $0).log"
Wie deinstalliere ich das dann wieder?
apt-get remove --purge curl
Dyndns Login successful
Sende E-Mail...
Jul 15 16:56:44 cs-server sendEmail[24777]: Email was sent successfully!
Kein Plan, wie das geht.dann stell LOGFILE entsprechend ein
scheint dann so nicht zu funktionieren.LOGFILE="/var/log/$(basename $0).log"
Das mit dem "Hi" oder "Welcome" einfach testen.
Das müßte zuerst sauber laufen, sonst nutzt Dir die Mail-Nachricht absolut nix.
Wir verwenden Cookies und ähnliche Technologien für die folgenden Zwecke:
Akzeptieren Sie Cookies und diese Technologien?
Wir verwenden Cookies und ähnliche Technologien für die folgenden Zwecke:
Akzeptieren Sie Cookies und diese Technologien?