Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Monatliche DynDNS-Anmeldung per Script

    Nobody is reading this thread right now.
AW: Monatliche DynDNS-Anmeldung per Script

Hallo,

habe leider auch nicht so den Plan von der Materie hier.
Habe einen Igel mit IPC 11.5
Der Hintergrund warum ich die Anmeldung per Script ausführen möchte, ist eigentlich nur der, wenn ich mal im Urlaub bin und dann die Mail kommt und ich aus welchen Gründen auch immer die Mail nicht innerhalb der 5 Tage bestätige, das der Account nicht gelöscht wird.

Habe mich jetzt an diese Anleitung von rolu2 gehalten https://www.digital-eliteboard.com/...g-per-Script&p=1896457&viewfull=1#post1896457

Die Datei habe ich runtergeladen, meine Daten eingegeben, "Hi" auf "Welcome" geändert bei mir und die Datei nach /var/emu/script kopiert. Rechte auf 755 gesetzt.
Das war alles kein Problem.
Jetzt möchte ich noch den crontab setzen. Diesen würde ich gerne einmal monatlich am 10.ten ausführen lassen, da ich gestern (also am 13.ten) die Mail bekommen habe.
Müsste ich dazu 0 6 10 * * root /var/emu/script/dyndns.sh eingeben? Also 1x im Monat am 10.ten um 06:00 Uhr????

Die Idee mit der EMail von hier https://www.digital-eliteboard.com/...g-per-Script&p=1896973&viewfull=1#post1896973
gefällt mir natürlich auch sehr gut. Doch da weiß ich überhaupt nicht was ich in das Script davon reinkopieren soll, geschweige denn was ich in "SMTPFROM" eingeben soll.

Höffe ihr könnt einem echten noob etwas helfen.

Grüße kalle
 
AW: Monatliche DynDNS-Anmeldung per Script

Steht doch in den ´xxx´ drin.
Oben die Absenderadresse, darunter die Empfängeradresse, darunter der Anbieter ( Server ) Deines Mail-Accounts.
 
AW: Monatliche DynDNS-Anmeldung per Script

Ja, das sehe ich ja auch. Mir ist nur unklar, was bei Absender rein muss. Empfänger ist ja meine Mail Adresse, aber was muss bei Absender rein?
Oder steh ich mal wieder auf´m Schlauch? Haut das mit dem crontab so hin?
 
AW: Monatliche DynDNS-Anmeldung per Script

trag da einfach ebenfals deine email ein


email konform muss eben eine absender email adresse angegeben werden, sonst wird die nachricht nicht verschickt.. da kann auch etwas erfundenes drin stehen aber unter umständen landet die dann in deinem spam-ordner.
also einfach in SMTPFROM und SMTPTO das selbe/gleiche eintragen

Haut das mit dem crontab so hin?
ja
 
AW: Monatliche DynDNS-Anmeldung per Script

OK. Login klappt und wird auch in der log. Datei hinterlegt. Jetzt versuch ich das mit der E-Mail noch und dann werde ich ja am 10.ten sehen, ob es hinhaut.

Danke erstmal für eure Hilfe.

Edit: Sollte ich nicht auch eine E-Mail bekommen, wenn ich das Script manuell anstoße, also zum Test? So lese ich es zumindest heraus.
Wenn ja, haut da was noch nicht hin. Fehlt da nicht noch der Port?
 
Zuletzt bearbeitet:
AW: Monatliche DynDNS-Anmeldung per Script

Wenn du es maneull anstößt siehst du doch was dann da steht. Poste das mal
 
AW: Monatliche DynDNS-Anmeldung per Script

Na da steht nur "Login successful". Hatte ja auch geschrieben, das die Anmeldung funktioniert. Aber ich bekomme keine E-Mail zugesandt.
Bei der Installation von SendEMail kommt "sendemail ist schon die neueste Version."
Habe es mit 2 verschiedenen Mail Adressen probiert. Keine Ahnung was da noch fehlt.
 
AW: Monatliche DynDNS-Anmeldung per Script

Fehlt da nicht noch der Port?
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 port

desweiteren ist (ohne unfreundlich wirken zu wollen) das etwas stümperhafte durch copy&past erstellte script von rooki_1 zudem auch etwas fehlerhaft, CRASHMAIL hat zum beispiel keinerlei funktion..
es kommt auch auf den jeweiligen email anbieter an ob sich über TLS verbunden werden muss, dafür gibt es in rooki_1's script aber auch keine option und last but not least ist die antwort von account.dyn.com nicht immer "Welcome" sondern manchmal auch "Hi"


hier mal eine angepasste version des scripts welches alles beachten sollte:
- funktioniert mit sowohl "Welcome" als auch "Hi"
- unterstützt sonderzeichen im USERNAME / PASSWORD
- benötigt keine zusätzlichen pakete (nutzt wget anstatt curl)
- das logfile kann auch abgeschaltet werden
- optional kann die maximale grösse des logfiles eingestellt werden (befehl "stat" erforderlich)
- wahlweise kann das logfile rotiert oder gelöscht werden
- optional nur bei fehlerhaftem login eine email verschicken..
Code:
#!/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
bitte testen :)
 
Zuletzt bearbeitet:
Werde das morgen nachmittag mal testen und berichten.

Gesendet von meinem GT-I9305 mit Tapatalk 2

##########################################################################################################

Morgen, eben nochmal kurz vor der Arbeit getestet. Bekomme folgende Fehlermeldung
/var/emu/script/dyndns.sh: 94: Syntax error: "(" unexpected

Was genau muss ich in Zeile 29 nun eintragen?
# EMail Absender SMTPFROM="`hostname`@fqdn.net"

Habe mal fqdn.net gegoogelt, aber kann damit nicht viel anfangen.

Bis heut nachmittag :dfingers:
 
Zuletzt bearbeitet von einem Moderator:
AW: Monatliche DynDNS-Anmeldung per Script

es wär gut wenn du keine doppel posts machst und somit den thread hier nicht unnötig strapazierst

Morgen, eben nochmal kurz vor der Arbeit getestet. Bekomme folgende Fehlermeldung
problem sollte nun behoben sein

Was genau muss ich in Zeile 29 nun eintragen?
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?
da könnte auch SMTPFROM="`hostname`@nervmichtot.de" stehen..
 
AW: Monatliche DynDNS-Anmeldung per Script

Der Hostname gefällt mir :good: :dance3:
Ist die HP noch zu haben :wacko1:
 
AW: Monatliche DynDNS-Anmeldung per Script

es wär gut wenn du keine doppel posts machst und somit den thread hier nicht unnötig strapazierst

Sorry, werde in Zukunft darauf achten.

das hab ich doch oben bereits ausführlich beschrieben was in SMTPFROM hinein müsste

Alles klar, dachte ihr habt da noch was geändert.

Jetzt kommen folgende Fehlermeldungen bei mir.

/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!

E-Mail kommt jetzt an, warum der Login nicht klappt, weiß ich nicht.
Und der log soll eigentlich nach var/log/*.log

- benötigt keine zusätzlichen pakete (nutzt wget anstatt curl)

Wie deinstalliere ich das dann wieder?

Sorry, aber habe echt keine Ahnung von solchen Scripts.

Mal sehen was die Profis hier dazu sagen. :JC_hmmm:
 
Zuletzt bearbeitet:
AW: Monatliche DynDNS-Anmeldung per Script

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
hm, schade. anscheint kommt sh nicht mit proc_url_encode zurecht..
änder mal die erste zeile des script von
Code:
#!/bin/sh
in:
Code:
#!/bin/bash
(und beim manuellen ausführen dann nicht "sh /path/to/script.sh" nutzen sondern "bash /path/to/script.sh" oder "/path/to/script.sh")

Und der log soll eigentlich nach var/log/*.log
dann stell LOGFILE entsprechend ein oder benutz
Code:
LOGFILE="/var/log/$(basename $0).log"



Wie deinstalliere ich das dann wieder?
Code:
apt-get remove --purge curl
aber das verbraucht eigentlich kein nennenswerten platz (130kB)
 
Zuletzt bearbeitet:
AW: Monatliche DynDNS-Anmeldung per Script

/var/emu/script/dyndns.sh: 110: Bad substitution
Scheint ein Fehler im dem Script zu sein.

Das mit dem "Hi" oder "Welcome" einfach testen.
Das müßte zuerst sauber laufen, sonst nutzt Dir die Mail-Nachricht absolut nix.
 
AW: Monatliche DynDNS-Anmeldung per Script

OK, jetzt haut es fast hin.

Dyndns Login successful
Sende E-Mail...
Jul 15 16:56:44 cs-server sendEmail[24777]: Email was sent successfully!

Allerdings wird im Logfile kein log geschrieben.
dann stell LOGFILE entsprechend ein
Kein Plan, wie das geht.
LOGFILE="/var/log/$(basename $0).log"
scheint dann so nicht zu funktionieren.

Sollte mal nen Linux Kurs besuchen. :-)

Das mit dem "Hi" oder "Welcome" einfach testen.
Das müßte zuerst sauber laufen, sonst nutzt Dir die Mail-Nachricht absolut nix.

Ist doch in seinem Script angeblich vollkommen egal. Ich werde mit Welcome beim Login begrüßt.
An dem Cronjob muss ich aber nichts ändern? Er führt ja immer noch dieselbe Datei aus.?
 
Zurück
Oben