Neue SLA bei kostenlosen Dyndns Accounts mittels AutoLoginScript umgehen

Status
Für weitere Antworten geschlossen.

Schmitty01

Benutzer
Mitglied seit
19. Aug 2010
Beiträge
28
Punkte für Reaktionen
0
Punkte
1
@3x3cut0r

Kann man das Script via Synology Aufgabenplaner ausführbar machen?

Gerd
 

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
507
Punkte für Reaktionen
15
Punkte
44
@Schmitty01:
Also ich habe mich gerade nochmal hingesetzt und das script um eine Logging-Funktion erweitert.
Eine andere Möglichkeit festzustellen ob der Aufgabenplaner das script auch ordnungsgemäß ausführt ist mir auf die schnelle nicht eingefallen.
Und hatte jetzt keine lust groß die Logfile des Aufgabenplaners zu suchen. (Es weis nicht zufällig einer wo die ist? :D )
und JA mittels Aufgabenplaner funktioniert das script bei mir auch einwandfrei.
Beim Aufgabenplaner einfach "benutzer-definiertes script" wählen und als Benutzer root auswählen. Das sollte eigentlich was rechte angeht alles klären ...
Der Pfad zum script sollte stimmen. Dann noch den gewünschten zeitplan festlegen und los gehts.

is den eine logging funktion allgemein erwünscht? ich meine schaden kanns eig nicht ;)
dann lass ich die auch fürs wiki einmal drinnen.

@casnoff und @raymond:
ja ich werde das demnächst noch ins wiki stellen. nur muss ich mir da vorher noch ein paar gedanken machen, was voraussetzungen usw. angeht.
bin mir nicht mehr so sicher, was die Standard DSM alles mitbringt, da ich ja ipkg und schon etliche dinge selber nachinstalliert habe.
habe aber mittwoch noch prüfungen und kann mich dem erst frühestens am langen wochenende widmen.
das wiki an sich muss ich mir auch noch genauer anschauen. wird auch das erste mal sein, das ich da was reinstelle.

gruß
 

claas

Benutzer
Mitglied seit
07. Jan 2010
Beiträge
629
Punkte für Reaktionen
0
Punkte
0
Hi,

Logging wäre super. Ich hab nämlich keine Ahnung, ob morgen früh der Aufgabenplaner das Skript ausführt ;), und weiss auch ehrlich gesagt nicht, wo ich das nachsehen könnte. In der /var/log/messages taucht nichts auf.
In den logs, die per DSM zugänglich sind, steht so viel ich sehen konnte auch nichts aus dem Aufgabenplaner.
Zumindest hab ich beim Klick auf "Ausführen" im Aufgabenplaner keine Fehlermeldung erhalten, was mich positiv stimmt, aber eine Bestätigung hätte ich doch lieber.

Bzgl. Abhängigkeiten:
Ich habe eine DS1511+ und keine IPKG-Geschichten installiert.
Für dein Skript habe ich einfach Python aus dem Paketzentrum installiert und den Pfad im Skript (mit deiner Hilfe ;) ) angepasst.

Daher würde ich für das Wiki die Installation von Python über das Paketzentrum als einfachste Möglichkeit angeben und den Pfad im "Default-Skript" entsprechend setzen.

Gruss

Claas
 

Schmitty01

Benutzer
Mitglied seit
19. Aug 2010
Beiträge
28
Punkte für Reaktionen
0
Punkte
1
Hallo,

dto. eine Loggingmöglichkeit wäre prima.
Ein Log in das die Tasks aus dem Aufgabenstarter landen habe ich auch vergeblich gesucht.

Da die Info über das fehlende Einloggen bei Dyn.com erst nach 30 Tagen kommt wäre die Testphase obs recht lang.

Auf jeden Fall vielen Dank fürs Script und den Support, wobei ich aber auch klar sagen würde -> Prüfungen gehen vor!.

Gruß

Gerd
 

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
507
Punkte für Reaktionen
15
Punkte
44
Also hier noch das script mit Logging ...
hab hier auch den pfad zu pyload auf den vom Paketmanager umgestellt (python2.7)
die logfile kann man ausschließlich über das script einstellen und nicht etwa über parameter ... halte ich auch für überflüssig.
in der def main, da wo auch der username und das password eingetragen wird, gibt es jetzt noch eine variable logfile
(hab jetzt "./dyndnsAutoLogin.log" eingetragen. kann ja jeder nach belieben ändern)
bis jetzt loggt er auch ausschließlich das, was er auch auf konsole ausgeben würde (also successfull bzw failed ...)
gibt es hier noch andere wünsche?

Rich (BBCode):
#!/volume1/@appstore/Python/usr/local/bin/python2.7

import urllib
import urllib2
import cookielib
import getopt
import sys
import logging

def getRandHTMLResponse(response):
    target = "<form id=\'login"
    targetresponse = "<div id=\'loginbox\'"

    response = response[response.find(targetresponse):len(response)]
    return response[response.find(target)+len(target):response.find(target)+len(target):response.find(target)+len(target)+4]

def getHiddenRandHTMLResponse(response):
    target = "<input type=\'hidden\' name=\'multiform\' value=\'"
    targetresponse = "<div id=\'loginbox\'"
    parsedres = response[response.find(targetresponse):len(response)]
    return parsedres[parsedres.find(target)+len(target):parsedres.find(target)+len(target)+34]

def checkLogin(response):
    target = "<title>My Dyn Account</title>"
    if response.find(target) == -1:
        return False
    return True

def usage():
    print "usage: ./dyndnsAutoLogin [options]"
    print ""
    print "options:"
    print "-h, --help 	 show this help message and exit"
    print "-u, --username   set your DynDns login_username"
    print "-p, --password   set your DynDns login_password"
    print ""
    print "example:"
    print "./dyndnsAutoLogin -u username -p password"

class HTMLSession:
    cj = None
    opener = None
    txHeaders = None
    
    def __init__(self, txHeaders):
        #The CookieJar will hold any cookies necessary throughout the login process.
        self.cj = cookielib.MozillaCookieJar()
        self.txHeaders = txHeaders
        self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cj))
        urllib2.install_opener(self.opener)

    def setHeaders(self, txheaders):
        self.txHeaders = txHeaders

    def getHeaders(self):
        return self.txHeaders

    def openURI(self, uri, txdata):
        try:
            req = urllib2.Request(uri, txdata, self.txHeaders)
            # create a request object

            handle = urllib2.urlopen(req)
            # and open it to return a handle on the url

        except IOError as e:
            print 'we failed to open "%s".' % uri

            if hasattr(e, 'code'):
                print 'We failed with error code - %s.' % e.code
            elif hasattr(e, 'reason'):
                print "The error object has the following 'reason' attribute :"
                print e.reason
                print "This usually means the server doesn't exist,'"
                print "is down, or we don't have an internet connection."
                return None
        else:
            return handle.read()

def main(argv):
    logfile = "./dyndnsAutoLogin.log"
    username = ""
    password = ""
    hiddenval = ""
    theurl = "https://account.dyn.com/entrance/"
    thelogouturl = "https://account.dyn.com/entrance/?__logout=1"
    txdata = None
    txheaders =  {'User-agent' : 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'}
    # fake a user agent, some websites (like google) don't like automated exploration
    logging.basicConfig(filename=logfile,level=logging.DEBUG, format='%(asctime)s %(message)s', datefmt='%Y/%m/%d %H:%M:%S -')

    try:
        opts, args = getopt.getopt(argv, "hu:p:", ["help", "username=","password="])
    except getopt.GetoptError:
        usage()
        exit(2)
    for opt, arg in opts:
        if opt in ("-h", "--help"):
            usage()
            exit(2)
        elif opt in ("-u", "--username"):
            username = arg
        elif opt in ("-p", "--password"):
            password = arg

    myhtmlsession = HTMLSession(txheaders)
    response = myhtmlsession.openURI(theurl, None)

    if response == None:
        sys.exit(0)

    hiddenval = getHiddenRandHTMLResponse(response)
    txdata = urllib.urlencode({'username':username, 'password':password, 'multiform':hiddenval, 'submit': "Log in"})

    response = myhtmlsession.openURI(theurl, txdata)
    if response == None:
        sys.exit(0)
    
    #we should sleep here for about 10 seconds.
    if checkLogin(response):
        print 'We have succesfully logged into DynDNS.'
        logging.info('We have succesfully logged into DynDNS.')
    else:
        print 'Login failed'
        logging.info('Login failed')

    response = myhtmlsession.openURI(thelogouturl, None)
    if response == None:
        sys.exit(0)

if __name__ == "__main__":
    main(sys.argv[1:])

die logfile sehe im übrigen so aus:
Rich (BBCode):
2013/05/26 20:28:09 - Login failed
2013/05/26 20:30:29 - Login failed
2013/05/26 20:30:59 - We have succesfully logged into DynDNS.

bei gelegenheit baue ich noch die IOExceptions ins logfile ein. aber hab gerade keine zeit mehr mach ich nächstes we.

gruß
 

Schmitty01

Benutzer
Mitglied seit
19. Aug 2010
Beiträge
28
Punkte für Reaktionen
0
Punkte
1
Hallo,

vielen Dank fürs bereitstellen und überarbeiten.
Leider habe ich wohl irgendwo Tomaten auf den Augen, via Terminal funktioniert alles incl. Log.
Wenn ich das Script via Aufgabenplaner ansteuere passiert nix:

Benutzer ist root

Benutzerdefiniertes Script: /volume1/@appstore/Python/usr/local/bin/python /volume1/install/scripts/dyndnsAutoLogin -u user -p pass

Vom Terminal aus funktionieren die Pfade wenn ich sie 1:1 übernehmen.

Könnte mirr da jemand auf die Sprünge helfen?

Danke

Gerd
 

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
507
Punkte für Reaktionen
15
Punkte
44
probiers mal nur mit: /volume1/install/scripts/dyndnsAutoLogin -u user -p pass
ich habs auch ohne gemacht, weil in dem script legst du ja schon fest mit was das script aufgerufen wird.
und besser noch schreib den benutzer und das passwort ins script rein und ruf es ohne parameter auf
bin mir nämlich nicht sicher was dieser aufgabenplaner da alles interpretieren kann.

und sorry lass mich nochmal blöd nachfragen: stimmt dein pfad? (/volume1/install/scripts/dyndnsAutoLogin)
weil dieser rein zufällig genau gleich mit meinem pfad auf meiner nas ist ;)
klingt für mich so kopiert weist ^^

gruß
 

claas

Benutzer
Mitglied seit
07. Jan 2010
Beiträge
629
Punkte für Reaktionen
0
Punkte
0
Hallo Gerd,

woran machst du fest, dass "nichts" passiert? Am Log?
Hast du im Script den Pfad zum Log absolut eingetragen?

Seitdem ich das gemacht habe, passt alles.

Gruss

Claas
 

Schmitty01

Benutzer
Mitglied seit
19. Aug 2010
Beiträge
28
Punkte für Reaktionen
0
Punkte
1
Hallo,

habs hinbekommen:

@3x3cut0r;
da das Script irgendwohin mußte habe ich deine Ordnerstruktur einfach mal übernommen, bzw. auch so bei mir angelegt.

@claas;
ja, das habe ich am Log festgemacht (gibt es noch eine andere Möglichkeit?), der Tip mit dem absoluten Pfad im Script zur Logdatei war goldrichtig.

Kurz die Werte die ich im Aufgabenplaner übergebe:

Vorgang: dyndnsAutoLogin
Benutzer: root
Befehl ausführen/Script: /volume1/install/scripts/dyndnsAutoLogin -u user -p pass

So funktionierts bei mir, also vielen Dank für Script und Unterstützung.

Gerd
 

Feuerwasser

Benutzer
Mitglied seit
28. Aug 2012
Beiträge
245
Punkte für Reaktionen
0
Punkte
22
@3x3cut0r: Sehr gute Arbeit!!!
Bei mir funktioniert auch alles bestens.
@Schmitty01: Vielen Dank auch für die Erklärung, was ich im Aufgabenplaner machen muss.
Ich mache das ganze auch ohne Parameter, habe die Daten direkt eingegeben.
 
Zuletzt bearbeitet:

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
507
Punkte für Reaktionen
15
Punkte
44
So ich habs geschafft, mein erster Wiki-Eintrag ist online ;)
Hauptseite -> 6.8.7: DyndnsAutoLogin

@Feuerwasser:
Dieser beantwortet auch deine Frage

Zum Script nochmal:
habs jetzt nur dahingehen abgeändert, das der Standardpfad für die Logs nun absolut ist (/var/log/dyndnsAutoLogin.log) und nicht mehr relativ. Um Fehler vorzubeugen ;)
und habe das loglevel noch mit in die Logfile eingebaut. (siehe wiki)
und habe noch 2 logeinträge hinzugefügt: einmal bei manuellem einloggen mit falschem parameter und einmal bei einem fehlercode von der webseite (falls diese beispielsweise nicht erreichbar war oder so)

bei fragen und anmerkungen stehe ich weiterhin gerne zu verfügung

gruß
 

Feuerwasser

Benutzer
Mitglied seit
28. Aug 2012
Beiträge
245
Punkte für Reaktionen
0
Punkte
22
super wiki-eintrag. respekt. damit sollte nun jeder klar kommen.
 

raymond

Benutzer
Mitglied seit
10. Sep 2009
Beiträge
4.704
Punkte für Reaktionen
21
Punkte
118

Franklyn

Benutzer
Mitglied seit
04. Jul 2013
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
habe alles probiert, leider ohne Erfolg!
das Logfile wird nicht generiert
Ich habe das Script mit zwei verschiedenen Editoren (Notepad+, Ultraedit) editiert, auf Tabs bzw. Leerzeichen geachtet!
Hier mal mein angepasstes Script:

Script: dyndnsAutoLogin #!/volume1/@appstore/Python/usr/local/bin/python

import urllib
import urllib2
import cookielib
import getopt
import sys
import logging

def getRandHTMLResponse(response):
target = "<form id=\'login"
targetresponse = "<div id=\'loginbox\'"

response = response[response.find(targetresponse):len(response)]
return response[response.find(target)+len(target):response.find(target)+len(target):response.find(target)+len(target)+4]

def getHiddenRandHTMLResponse(response):
target = "<input type=\'hidden\' name=\'multiform\' value=\'"
targetresponse = "<div id=\'loginbox\'"
parsedres = response[response.find(targetresponse):len(response)]
return parsedres[parsedres.find(target)+len(target):parsedres.find(target)+len(target)+34]

def checkLogin(response):
target = "<title>My Dyn Account</title>"
if response.find(target) == -1:
return False
return True

def usage():
print "usage: ./dyndnsAutoLogin [options]"
print ""
print "options:"
print "-h, --help show this help message and exit"
print "-u, --username set your DynDns login_username"
print "-p, --password set your DynDns login_password"
print ""
print "example:"
print "./dyndnsAutoLogin -u username -p password"

class HTMLSession:
cj = None
opener = None
txHeaders = None

def __init__(self, txHeaders):
#The CookieJar will hold any cookies necessary throughout the login process.
self.cj = cookielib.MozillaCookieJar()
self.txHeaders = txHeaders
self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cj))
urllib2.install_opener(self.opener)

def setHeaders(self, txheaders):
self.txHeaders = txHeaders

def getHeaders(self):
return self.txHeaders

def openURI(self, uri, txdata):
try:
req = urllib2.Request(uri, txdata, self.txHeaders)
# create a request object

handle = urllib2.urlopen(req)
# and open it to return a handle on the url

except IOError as e:
print 'we failed to open "%s".' % uri

if hasattr(e, 'code'):
print 'We failed with error code - %s.' % e.code
logging.error('We failed with error code - %s.' % e.code)
elif hasattr(e, 'reason'):
print "The error object has the following 'reason' attribute :"
print e.reason
print "This usually means the server doesn't exist,'"
print "is down, or we don't have an internet connection."
return None
else:
return handle.read()

def main(argv):
username = "unknown"
password = "unknown"
logfile = "/volume1/daten/dyndnsAutoLogin.log"

hiddenval = ""
theurl = "https://account.dyn.com/entrance/"
thelogouturl = "https://account.dyn.com/entrance/?__logout=1"
txdata = None
txheaders = {'User-agent' : 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'}
# fake a user agent, some websites (like google) don't like automated exploration
logging.basicConfig(filename=logfile,level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s', datefmt='%Y/%m/%d %H:%M:%S')

try:
opts, args = getopt.getopt(argv, "hu:p:", ["help", "username=","password="])
except getopt.GetoptError:
usage()
logging.warning('Manual login with incorrect parameters')
exit(2)
for opt, arg in opts:
if opt in ("-h", "--help"):
usage()
exit(2)
elif opt in ("-u", "--username"):
username = arg
elif opt in ("-p", "--password"):
password = arg

myhtmlsession = HTMLSession(txheaders)
response = myhtmlsession.openURI(theurl, None)

if response == None:
sys.exit(0)

hiddenval = getHiddenRandHTMLResponse(response)
txdata = urllib.urlencode({'username':username, 'password':password, 'multiform':hiddenval, 'submit': "Log in"})

response = myhtmlsession.openURI(theurl, txdata)
if response == None:
sys.exit(0)

#we should sleep here for about 10 seconds.
if checkLogin(response):
print 'We have succesfully logged into DynDNS.'
logging.info('We have succesfully logged into DynDNS.')
else:
print 'Login failed'
logging.info('Login failed')

response = myhtmlsession.openURI(thelogouturl, None)
if response == None:
sys.exit(0)

if __name__ == "__main__":
main(sys.argv[1:])

Vielleicht hat ja jemand 'ne Idee!
Vielen Dank.
 

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
507
Punkte für Reaktionen
15
Punkte
44
hi
in dem du dein script hier so postest können wir leider nicht viel damit anfangen, da wir nicht sehen können wo du evtl falsche leerzeichen gemacht hast etc ...
poste es entweder so wie ich im code-block format oder lade dein script per file hier als anhang hoch!

wenn dein script nicht loggt, heißt das eig nur das es schon nicht richtig ausgeführt werden kann.
was bekommst du denn für eine fehlermeldung, wenn du dein script per hand ausführst in der console?

gruß
 

Franklyn

Benutzer
Mitglied seit
04. Jul 2013
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
was meinst du mit "Code-block"?
Wie führe ich das Script per Hand in der Konsole aus?
Hochladen klappt auch nicht, lädt und lädt und lädt...
Sorry, bin absoluter Anfänger!
 

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
507
Punkte für Reaktionen
15
Punkte
44
wenn du beim posten eines beitrags auf Erweitert unten rechts klickst, hast du in der Formatleiste ein symbol # ("Code einfügen CODE")
darin postest du dann dein script!

und dir als anfänger zu erklären, wie du mit der konsole umgehst und ein script per hand startest führt hier glaube ich zu weit. sry
hierzu gibt es auch ganz gute artikel im wiki:
http://www.synology-wiki.de/index.php/Die_Kommandozeile
http://www.synology-wiki.de/index.php/Grundlegende_Befehle_auf_der_Kommandozeile

warum das hochladen nicht geht, weis ich jetzt allerdings auch nicht

gruß
 

Franklyn

Benutzer
Mitglied seit
04. Jul 2013
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Rich (BBCode):
Script: dyndnsAutoLogin #!/volume1/@appstore/Python/usr/local/bin/python

import urllib
import urllib2
import cookielib
import getopt
import sys
import logging

def getRandHTMLResponse(response):
    target = "<form id=\'login"
    targetresponse = "<div id=\'loginbox\'"

    response = response[response.find(targetresponse):len(response)]
    return response[response.find(target)+len(target):response.find(target)+len(target):response.find(target)+len(target)+4]

def getHiddenRandHTMLResponse(response):
    target = "<input type=\'hidden\' name=\'multiform\' value=\'"
    targetresponse = "<div id=\'loginbox\'"
    parsedres = response[response.find(targetresponse):len(response)]
    return parsedres[parsedres.find(target)+len(target):parsedres.find(target)+len(target)+34]

def checkLogin(response):
    target = "<title>My Dyn Account</title>"
    if response.find(target) == -1:
        return False
    return True

def usage():
    print "usage: ./dyndnsAutoLogin [options]"
    print ""
    print "options:"
    print "-h, --help 	 show this help message and exit"
    print "-u, --username   set your DynDns login_username"
    print "-p, --password   set your DynDns login_password"
    print ""
    print "example:"
    print "./dyndnsAutoLogin -u username -p password"

class HTMLSession:
    cj = None
    opener = None
    txHeaders = None
    
    def __init__(self, txHeaders):
        #The CookieJar will hold any cookies necessary throughout the login process.
        self.cj = cookielib.MozillaCookieJar()
        self.txHeaders = txHeaders
        self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cj))
        urllib2.install_opener(self.opener)

    def setHeaders(self, txheaders):
        self.txHeaders = txHeaders

    def getHeaders(self):
        return self.txHeaders

    def openURI(self, uri, txdata):
        try:
            req = urllib2.Request(uri, txdata, self.txHeaders)
            # create a request object

            handle = urllib2.urlopen(req)
            # and open it to return a handle on the url

        except IOError as e:
            print 'we failed to open "%s".' % uri

            if hasattr(e, 'code'):
                print 'We failed with error code - %s.' % e.code
                logging.error('We failed with error code - %s.' % e.code)
            elif hasattr(e, 'reason'):
                print "The error object has the following 'reason' attribute :"
                print e.reason
                print "This usually means the server doesn't exist,'"
                print "is down, or we don't have an internet connection."
                return None
        else:
            return handle.read()

def main(argv):
    username = "unknown"
    password = "unknown"
    logfile = "/volume1/daten/dyndnsAutoLogin.log"
    hiddenval = ""
    theurl = "https://account.dyn.com/entrance/"
    thelogouturl = "https://account.dyn.com/entrance/?__logout=1"
    txdata = None
    txheaders =  {'User-agent' : 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'}
    # fake a user agent, some websites (like google) don't like automated exploration
    logging.basicConfig(filename=logfile,level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s', datefmt='%Y/%m/%d %H:%M:%S')

    try:
        opts, args = getopt.getopt(argv, "hu:p:", ["help", "username=","password="])
    except getopt.GetoptError:
        usage()
        logging.warning('Manual login with incorrect parameters')
        exit(2)
    for opt, arg in opts:
        if opt in ("-h", "--help"):
            usage()
            exit(2)
        elif opt in ("-u", "--username"):
            username = arg
        elif opt in ("-p", "--password"):
            password = arg

    myhtmlsession = HTMLSession(txheaders)
    response = myhtmlsession.openURI(theurl, None)

    if response == None:
        sys.exit(0)

    hiddenval = getHiddenRandHTMLResponse(response)
    txdata = urllib.urlencode({'username':username, 'password':password, 'multiform':hiddenval, 'submit': "Log in"})

    response = myhtmlsession.openURI(theurl, txdata)
    if response == None:
        sys.exit(0)
    
    #we should sleep here for about 10 seconds.
    if checkLogin(response):
        print 'We have succesfully logged into DynDNS.'
        logging.info('We have succesfully logged into DynDNS.')
    else:
        print 'Login failed'
        logging.info('Login failed')

    response = myhtmlsession.openURI(thelogouturl, None)
    if response == None:
        sys.exit(0)

if __name__ == "__main__":
    main(sys.argv[1:])

so richtig?
Übrigens, vielen Dank für deine Geduld!
 

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
507
Punkte für Reaktionen
15
Punkte
44
ja fast ... ich gehe davon aus, dass dein script nicht mit
Rich (BBCode):
Script: dyndnsAutoLogin #!/volume1/@appstore/Python/usr/local/bin/python
beginnt, sondern mit
Rich (BBCode):
#!/volume1/@appstore/Python/usr/local/bin/python

weiterhin gehe ich davon aus, dass du
Rich (BBCode):
username = "unknown"
password = "unknown"
logfile = "/volume1/daten/dyndnsAutoLogin.log"
in deinem script mit dem echten username und dem echten passwort ersetzt hast
und viel wichtiger, der logfile pfad auch hier richtig eingegeben wurde,
sprich der ordner "daten" auf volume1 existiert auch (Groß-/Kleinschreibung wurde beachtet!)

wenn das alles passt, dann kommen wir hier ohne ein manuelles ausführen des scriptes auf konsoleneben nicht weiter,
denn nur dort sehen wir den tatsächlichen fehler.

gruß
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat 

 
 
  AdBlocker gefunden!

Du bist nicht hier, um Support für Adblocker zu erhalten. Dein Adblocker funktioniert bereits ;-)

Klar machen Adblocker einen guten Job, aber sie blockieren auch nützliche Funktionen.

Das Forum wird mit hohem technischen, zeitlichen und finanziellen Aufwand kostenfrei zur Verfügung gestellt. Wir zeigen keine offensive Werbung und bemühen uns um eine dezente Integration.

Bitte unterstütze dieses Forum, in dem du deinen Adblocker für diese Seite deaktivierst.

Du kannst uns auch über unseren Kaffeautomat einen Kaffe ausgeben oder ein PUR Abo abschließen und das Forum so werbefrei nutzen.

Vielen Dank für Deine Unterstützung!