FileZilla Server - Online User Benachrichtigung

  • hallo,

    gibt es ne möglichkeit, sich per script anzeigen zu lassen, wer grad auf seinem ftp server (von filezilla) ist?

    eigentlich läuft der server ja nur im hintergrund, kann man von da irgendwie die login-infos abgreifen?
    ne weitere möglichkeit, wäre das admin-interface auszulesen. der prozess läuft zwar, das programm ist aber meist im systray minimiert .... kann man trotzdem aus dem fenster informationen beziehen?

    nächste möglichkeit wäre, nach nem bestimmten text in ner log-datei zu suchen und ein teil davon ausgeben zu lassen.

    jedoch habe ich die log standardmäßig aus, wäre eine von der ersten beiden möglichkeiten machbar?

  • Wenn du das programm (den server) via autoit startest, könnte es ja über StdoutRead gehen, oder geht das "Nur" bei cmd?

  • ich glaub stdoutread funktioniert nur bei der cmd...aber sicher bin ich mir nicht...ein versuch wärs wert....es gab doch einen befehl der alle "aktiven" fenster ausgibt...WinGetWindow oder sowas in der Art...vll findest du damit erstens deinen server wenn ja dann solltest du den mal nicht im "hidden"-modus starten und schuen was so das Info tool über die fläche sagt wo die ganzen aktiven user drinn stehen....gabs beim server nicht so ne einstellung das man benachrichtigt wird wenn jemand connectetd??hatte den schon ewig nicht mehr installaliert also kann mich irren bin jetzt auch zu faul den nachzuinstallalieren....^^


    le snoozer

  • stdoutread kenn ich nicht, werd ich mir aber mal angucken.

    ansonsten habe ich mal angefangen, die log auszulesen.
    theoretisch klappt es ganz gut, ausser dass er eigentlich nie nur den letzten neuen user ausgibt, sondern alle, die noch in der log drin sind (immer ca. um die 5, da man die log nicht unter 10kb trimmen kann)

    aber ich glaube ich bin auf nem guten weg ...

    Edit: ok, dummer fehler ... ich kann ja einfach die letzte zeile auslesen =)
    habe aber nun ein neues prob, da sich die größe der datei nicht nur ändert, wenn eine neuer user auf den server connected ... da müsste ich noch was einbauen, damit ich die meldung jetzt nicht doppelt erhalte

    Spoiler anzeigen
    [autoit]


    #include <File.au3>
    #include <array.au3>

    $sFilePath = "C:\Programme\FileZilla Server\Logs\FileZilla Server.log"
    $sFilePath2 = "C:\Programme\FileZilla Server\Logs\FileZilla Server.log.bak"
    $newtime = 0
    Global $lines_A, $line

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

    $gettime = FileGetTime ($sFilePath, 0, 1)

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

    While 1
    _FileReadToArray($sFilePath, $lines_A)
    For $i = UBound($lines_A) - 1 To 1 Step - 1
    If Not StringRegExp($lines_A[$i], '230 Logged on', 0) Then _ArrayDelete($lines_A, $i)
    Next
    _FileWriteFromArray($sFilePath2, $lines_A, 1)
    _FileReadToArray($sFilePath2, $lines_A)
    _FileWriteFromArray($sFilePath2, _ArrayUnique($lines_A), 1)
    If @error Then
    Else
    $lines = _FileCountLines ($sFilePath)
    MsgBox(0, "", FileReadLine($sFilePath, $lines))
    EndIf
    Do
    $gettime = FileGetTime ($sFilePath, 0, 1)
    Sleep(1000)
    $newtime = FileGetTime ($sFilePath, 0, 1)
    Until $gettime <> $newtime
    WEnd

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

    Func _ArrayUnique(ByRef $aArray, $vDelim = '', $iBase = 1, $iUnique = 1)
    If $vDelim = '' Then $vDelim = Chr(01)
    Local $sHold
    For $iCC = $iBase To UBound($aArray) - 1
    If Not StringInStr($vDelim & $sHold, $vDelim & $aArray[$iCC] & $vDelim, $iUnique) Then _
    $sHold &= $aArray[$iCC] & $vDelim
    Next
    Return StringSplit(StringTrimRight($sHold, StringLen($vDelim)), $vDelim)
    EndFunc ;==>_ArrayUnique

    [/autoit]

    PS: filezilla bietet keine option an, hab nix derartiges finden können

  • so, script ist fertig und unter skripte zu finden ...
    es funzt, ist aber nicht die non-plus-ultra version ...

    eine frage hab ich aber noch, ist es möglich, so etwas mit autoit zu machen?

    hat vllt noch jmd ne idee, wie man so fenster hingekommt?
    und was mir weiter aufgefallen ist ... die userliste ist ja nicht immer genau ... ich suche noch ne möglichkeit, das ziemlich genau zu halten, anzeige wenn sich jmd ein/ausloggt ...

    ansonsten habe ich noch paar kleinigkeiten eingebaut, was mir ziemlich gut gefällt =)
    es wird ne kleine bedienzentrale für FZ-Server