Probleme mit FTPEx und mit 7za.exe

  • Hallo miteinander.

    Ich dachte eigentlich, das wird ein Spaziergang, doch weit gefehlt! Das Script soll eigentlich nur ein simples backup packen und per ftp hochladen, leider funktioniert davon praktisch gar nichts, aus mir unerklärlichen Gründen.

    Hier der Quellcode:

    Spoiler anzeigen
    [autoit]

    #Include <FTPEx.au3>
    $path=IniRead("settings.ini", "Settings", "path", "rapla\webapp\WEB-INF\")
    $serveradress=IniRead("settings.ini", "Settings", "serveradress", "domain")
    $username=IniRead("settings.ini", "Settings", "username", "username")
    $password=IniRead("settings.ini", "Settings", "password", "password")
    #cs
    $filename=@MDAY&"."&@MON&"."&@YEAR&"_"&@HOUR&"."&@MIN&"."&@SEC&".gz"
    RunWait("7z.exe a "&$filename&" "&$path&"*.xconf")
    RunWait("7z.exe a "&$filename&" "&$path&"*.xml")
    #ce
    $filename="test.7z"

    [/autoit] [autoit][/autoit] [autoit]

    $connection=_FTP_Open("AutoIt v3")
    _FTP_Connect($connection, $serveradress, $username, $password)
    ;_FTP_DirSetCurrent($connection, "rapla")
    ;_FTP_DirSetCurrent($connection, "backups")
    _FTP_FilePut($connection, $filename, $filename)
    _FTP_Close($connection)

    [/autoit] [autoit][/autoit] [autoit]

    $log = FileOpen("log.txt", 9)
    FileWriteLine($log, @MDAY&"."&@MON&"."&@YEAR&", "&@HOUR&":"&@MIN&":"&@SEC&" - Datei "&$filename&" wurde erfolgreich hochgeladen.")
    FileClose($log)

    [/autoit] [autoit][/autoit] [autoit]

    FileCopy($filename, "backups\"&$filename)
    FileDelete($filename)

    [/autoit]

    Das mit dem 7z schau ich heute Abend nochmals genauer, ich glaube, für gz bräuchte ich die 7za.exe, vielleicht funktioniert es dann bereits. Aber was mit dem FTP nicht tut, weiß ich nicht. möglicherweise wird der FTP-Agent gesperrt, aber ich finde auch nichts, wie z.B. FileZilla "heißt". Sehr deprimierend, 15 Zeilen Code und nichts tut :(

    Hinweis: Ich muss nun weg und konnte daher keinen ftp-test-account erstellen, ich hoffe, jemand ist da, der das kann.
    *Edit*: Das mit dem Log-Eintrag wird natürlich bei zeit noch an die Errorcodes angepasst, sodass das mehr der Wahrheit entspricht :D

    Einmal editiert, zuletzt von Weisgarnix (16. August 2011 um 09:45) aus folgendem Grund: -> gelöst

  • Du solltest dir in den Beispielen zu FTP nochmals genau ansehen, welche Variablen wo verwendet werden:

    [autoit]

    $ftp = _FTPOpen
    $CONN = _FTP_Connect
    _FTP_FilePut($CONN
    _FTP_Close($CONN)
    _FTP_Close($ftp)

    [/autoit]
  • Weitere Probleme die häufig auftreten:

    - Passiv mode erforderlich, siehe ftp connect
    - port ist nicht port 21, in diesem Fall muss er angegeben werden, siehe ftp connect
    - falsche server url (es darf kein ftp:// am anfang stehen, sondern lediglich die url)

    Ansonsten solltest du einfach die Rückgabewerte und errorcodes ausgeben lassen, dann kannst du auch herausfinden wo und warum es nicht klappt.

  • progandy hat den Nagel auf den Kopf getroffen.
    FTP funktioniert nun, das mit 7z leider noch nicht so ganz:

    [autoit]

    $filename=@MDAY&"."&@MON&"."&@YEAR&"_"&@HOUR&"."&@MIN&"."&@SEC&".7z"
    RunWait('7za.exe a '&$filename& ' ' &$path&"*.xconf"&'"',@ScriptDir,@SW_HIDE)
    RunWait('7za.exe a '&$filename& ' ' &$path&"*.xml"&'"',@ScriptDir,@SW_HIDE)

    [/autoit]


    Die Dateien werden zwar erstellt, sind aber leer, obwohl die Dateien, die hinzugefügt werden sollen, definitiv vorhanden sind.

    *Edit*: Sowohl

    [autoit]

    '7za.exe a '&$filename& ' ' &'"'&$path&"web.xml"&'"')

    [/autoit]

    als auch

    [autoit]

    "7za.exe a "&$filename&" "&Chr(34)&$path&"web.xml"&Chr(34)

    [/autoit]

    tun beide nicht, und das, obwohl ich die wildcards entfernt habe. Meine Ideen sind erschöpft, keine Ahnung, was ich daran noch ändern könnte, ich versuchs nun noch mit ShellExecute, vlt blickt die 7za.exe oder autoit irgendwas an den Parametern nicht.

    *Edit2*: Läuft nun. War ja klar, ich Depp hatte zu Testzwecken irgendwann mal beim Input($path) ein @ScriptDir davor gebastelt und dann aber den \ nicht hinzugefügt. nun ists wieder mit relativen Pfaden und funktioniert inkl. der wildcards:

    [autoit]

    RunWait('7za.exe a '&$filename& ' ' &'"'&$path&"raplaserver.xlog"&'"', "",@SW_HIDE)
    RunWait("7za.exe a "&$filename&" "&Chr(34)&$path&"*.xconf"&Chr(34), "", @SW_HIDE)
    ShellExecuteWait("7za.exe", "a "&$filename&" "&Chr(34)&$path&"*.xml"&Chr(34), "", "",@SW_HIDE)

    [/autoit]

    -> *closed*

    4 Mal editiert, zuletzt von Weisgarnix (16. August 2011 um 09:49) aus folgendem Grund: Läuft nun!