Wildcards für InetGet

  • Hallo,

    ich würde gerne eine Log-Datei von einem Webserver automatisch laden.
    Die Hilfe sagt es geht prinzipiell so:
    InetGet ( "http://server.tld/folder/file.log", "c:\TMP\file.log", 1, 0 )
    Aber dummerweise ist im Logfile aber das aktuelle Datum drin, es ändert sich also.
    in dem Verzeichnis am Webserver ist immer nur genau eine Datei drin, der CRON-Job löscht eventuell vorhandene ältere Dateien vor dem kopieren.
    Kann man mit *.log auch einfach jede beliebige .log Datei laden?

    Einmal editiert, zuletzt von Silece (15. September 2013 um 12:03)

  • Nein, kann man nicht.
    Mir fielen 2 Möglichkeiten ein:

    1.
    Eine PHP-Datei auf dem Server, welche den Verzeichnisinhalt ausliest, und den Dateiinhalt ausgibt. Wenn du mit PHP direkt auf dem Server arbeitest, hast du ja den vollen Zugriff. Dann steuerst du per AutoIt einfach deine PHP-Schnittstelle an.

    2.
    Du benutzt die AutoIt-Makros, um das Datum in den Aufruf zu integrieren: @MDAY, @MON, @YEAR etc...

    lg

  • Hallo Chesstiger,

    schade, dass das nicht geht. :(

    Was ich mir noch überlegt habe:
    wget könnte das können.

    Also wäre der korrekte Code wohl:

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

    ShellExecuteWait ("c:\wget.exe", "-r -A log http://webserver.tld/folder/", "c:\TMP")

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


    oder?

  • Keine Ahnung, kenne wget nicht.
    Ich gehe mal davon aus, dass das dein Server ist, bzw. du die FTP-Zugangsdaten hast?
    Darüber kannst du auch agieren, ohne wget:

    [autoit]


    _FTP_Connect
    _FTP_ListToArray
    _FTP_Close

    [/autoit]

    lg^^

  • Weißt du nicht wann der Cronjob ausgeführt wird?
    Damit hättest du ja den Zeitstempel und könntest die Datei auch ganz einfach laden

    Ansonsten hast du doch bestimmt auch nen FTP Server laufen oder?
    Dann würde ich die FTP Funktionen nutzen

    Spoiler anzeigen
    [autoit]

    _FTP_Open()
    _FTP_Connect()
    _FTP_ListToArray()
    _FTP_Close()

    [/autoit]

    wget finde ich da etwas übertrieben :whistling:

    Edit: FTP siehe chess ^^

  • Wo ist das Problem, sofern das directory listing nicht vom Webserver untersagt wird kann man sich problemlos alle im Verzeichnis befindlichen Dateien anzeigen lassen und mit minimaler Programmlogik dann die interessanten Downloadlinks zusammenstellen:

    [autoit]


    $test = InetRead("http://deineURL.de/DeinLogDir/",17) ; gibt dir den HTML Quellcode in dem sich die Downloadlinks befinden
    ConsoleWrite( BinaryToString($test) & @CRLF)
    ; nun nur noch einige String oder Regex Operationen und danach dann die gewünschte Datei mit inetget herunterladen

    [/autoit]

    Einmal editiert, zuletzt von misterspeed (27. August 2013 um 16:36)

  • Hallo,

    ich habe jetzt doch meine WGet Lösung genommen, weil es so schön Quick&Dirty war :)
    Schön hat keiner haben wollen.