Ankündigung

Einklappen
Keine Ankündigung bisher.

FTP Handle schließen...

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • EPIX
    antwortet
    OK, das ist ja soweit noch in Ordnung...
    nur wie bringe ich den eibPC dazu unbenötigte Handles zu schließen?

    Beispiel:
    Jahresswechsel: 1.1.2015 (angeblich trotz Eurokrise und Budgetloch noch immer nicht abgesagt )
    1.1.2015 00:00
    - Anlegen des Jahresverzeichnis mit ftpconfig() -> Handle #1
    - Anlegen des Monatsverzeichnis mit ftpconfig() -> Handle #2
    - Anlegen & Schreiben des ersten Tagesverzeichnis (1.1.2015) mit ftpconfig() -> Handle #3
    - Anlegen & Schreiben des Tagessverzeichnis (2.1.2015) mit ftpconfig() -> Handle #4
    so weit so gut...
    - Anlegen & Schreiben des Tagessverzeichnis (3.1.2015) mit ftpconfig() -> Handle #5
    - Anlegen & Schreiben

    -> UND WAS IST JETZT?

    Siehst du DASS meinte ich

    Einen Kommentar schreiben:


  • salixer
    antwortet
    Hallo,

    ich habe das gerade noch einmal getestet. Es wird bei einem flushftp wie erwartet ein neuer Unterordner erstellt und die Daten hochgeladen. Der Status während des Hochladens ist 5 (Übertragung wird durchgeführt), nach dem Abschluss ist er 0 (Erfolg).

    Es können nicht mehrere Unterordner in einem Aufruf erstellt werden. Man bekommt hier den Rückgabewert 4 (Verzeichnis konnte nicht erstellt werden).

    Falls du irgendwo den Status 5 bekommst, solltest du etwas warten, bis der FTP-Prozess beendet wurde. Je nach Systemauslastung kann das unterschiedlich lange dauern.

    Falls du mehrere Handles benutzt, die auf die gleiche Verzeichnisstruktur mit unterschiedlicher Tiefe zugreifen, kann es sein, dass die Verzeichnisstruktur erst nach und nach aufegbaut wird (also immer ein Unterordner hinzugefügt wird).

    Einen Kommentar schreiben:


  • EPIX
    antwortet
    konsequent weitergedacht:

    wenn ich (was ja eigentlich der Grund dieses Threads war) die Logs in einer Verzeichnis-Struktur ablegen will und keine Möglichkeit habe die Handles zu schließen, dann geht dem eibPC relativ rasch die "Luft aus", da ja nur 4 Handles möglich sind....

    Vielleicht könnte man ja am Montag etwas dazu sagen
    (zu Enertex rüberschiel')

    Einen Kommentar schreiben:


  • EPIX
    antwortet
    jetzt habe ich die Funktionalität getestet (patch 3.009)

    Ausgangs- Verzeichnis ist existent zB:
    HomeNet/FTP/KNX_LOG/eibPC/

    wird jetzt als pfad
    HomeNet/FTP/KNX_LOG/eibPC/2014/04/13 beim ftpConfig() angegeben, so wird der Handle erstellt, aber die Verzeichnisse werden nicht erstellt.
    Der Status beim versuchten flushen wird mit "5" zurückgegeben
    (besser = klarer wäre eigentlich "4")

    wird jetzt als pfad
    HomeNet/FTP/KNX_LOG/eibPC/2014/04 beim ftpConfig() angegeben, so wird der Handle erstellt, aber die Verzeichnisse werden nicht erstellt.
    Der Status beim versuchten flushen wird mit "5" zurückgegeben
    (besser = klarer wäre eigentlich "4")

    wird jetzt als pfad
    HomeNet/FTP/KNX_LOG/eibPC/2014 beim ftpConfig() angegeben, so wird der Handle erstellt, UND das Verzeichnisse wird erstellt.
    Der Status beim versuchten flushen wird mit "4" zurückgegeben
    (besser = klarer wäre eigentlich "1")

    Das Problem kann man zwar durch gezieltes stufenweises Anlegen der Verzeichnisstruktur mit ftpconfig/flushen umgehen, es wird jedoch bei jedem eibPC start ein neues File geschrieben....
    ALLERDINGS "verbraucht" man auf diese Weise 2 Handles - weil man einen geöffneten ftp-Kanal nicht gezielt schließen kann - oder doch??

    Einen Kommentar schreiben:


  • EPIX
    antwortet
    Ah, OK....

    Ich warte aber lieber auf das nä. Update und stelle dann mein Makro für das logging fertig - dann ist ja hoffentlich auch die encode-Funktion der GA -> Klartext mit an Board....

    Vorher sind die logs eher nicht wirklich brauchbar

    Schönes WE

    Einen Kommentar schreiben:


  • enertegus
    antwortet
    Zitat von EPIX Beitrag anzeigen
    Weil die Aufgabenstellung war schon klar:
    Folgendes hierzu:
    Das Verzeichnis $Log/Telegramme$ wird in der vorliegenden Version nicht angelegt, wenn der Pfad "zwei-stufig" ist also hier "Log ... Telegramme".
    Wenn der Pfad nur einstufig ist, also $Telegramme$ würde der Pfad angelegt werden.
    In einer der nächsten Versionen wird das gefixt.

    Einen Kommentar schreiben:


  • EPIX
    antwortet
    Dann war es halt "Thema verfehlt"

    Weil die Aufgabenstellung war schon klar:
    dazu muss ich den ftp-Pfad um Mitternacht ändern....

    Einen Kommentar schreiben:


  • enertegus
    antwortet
    Zitat von EPIX Beitrag anzeigen
    DAS GIBT JETZT
    Es ist halt so wie in der Schule, wenn man einsagt, dann sollte es auch stimmen....
    Der stimmt ja und loggt auch, nur das verzeichnis muss eben schon da sein.

    Einen Kommentar schreiben:


  • EPIX
    antwortet
    Zitat von enertegus
    Das geht so (hier auch getestet):
    epc Code:
    changepath=OFF
    ....
    DAS GIBT JETZT ABER
    Es ist halt so wie in der Schule, wenn man einsagt, dann sollte es auch stimmen....

    Nix für ungut, aber nachdem ich mit dem "getesten" Code einige Stunde verschi*** habe: als Trostpflaster wünsch' ich mir:
    Zitat von enertegus Beitrag anzeigen
    Was Dir wahrscheinlich noch fehlt ist eine Funktion:
    GAName=GetNameGA(39u16,encoding)
    die der EibPC in seine übliche GA-Schreibweise umsetzt, also z.B. "LichtKüche-0/0/3".
    dann ist die eibPC-Welt wieder

    Einen Kommentar schreiben:


  • enertegus
    antwortet
    Zitat von EPIX Beitrag anzeigen
    Kann jemand eigentlich das Problem nachvollziehen?
    hab das auf einem NAS eben auch gesehen: Das Verzeichnis muss vorhanden sein => Bug.

    Einen Kommentar schreiben:


  • EPIX
    antwortet
    ich habe jetzt (um Probleme mit dem NAS auszuschliessen) das Ziel auf meine Fritzbox gelegt:

    gleiches Phänomen - das Verzeichnis wird nicht angelegt..

    Wenn ich mit dem User/Passwort mittels WinSCP per FTP zugreife, habe ich die Rechte - der FTP ist also richtig konfiguriert!

    Kann jemand eigentlich das Problem nachvollziehen?

    Einen Kommentar schreiben:


  • EPIX
    antwortet
    da liegt irgendwie der Hase im Pfeffer...

    Nach langem herumtesten schaut es so aus, als ob der ftp-Befehl das neue Verzeichnis nicht anlegt...

    Der angegebene User "KNX" hat "admin" Rechte und ich kann (als KNX eingeloggt) auch Verzeichnisse & Dateien anlegen...
    im betreffenden Verzeichnis habe ich mittlerweile alle Beschränkungen testweise aufgehoben - ohne Erfolg.

    vom eibPC aus geht es jedoch nicht: es wir ein Fehlercode 5 zurückgegeben - wenn ich das Verzeichnis manuell anlege, dann legt der eibPC brav sein ftp-File an.

    Code:
    //manuelles loggen auslösen
    if log_man_flush then \\
    	log_man_flush=AUS; \\
    	Syslog(Notice,$EIBPC man_flushBuffer: $+convert(ftpbuffer(log_handle)+1u16,$$)+\\
    		$ Timeout $+convert(ftptimeout(log_handle),$$)); \\
    	log_ftpstatus=flushftp(log_handle); \\
    	Syslog(Notice,$EIBPC man_flushStatus: $+convert(log_ftpstatus,$$)+$ - $+log_gapath+log_month+$/$+log_day); \\
    	log_ftpstatus=ftpstate(log_handle); \\
    	Syslog(Notice,$EIBPC man_ftpStatus: $+convert(log_ftpstatus,$$)+$ - $+log_gapath+log_month+$/$+log_day); \\
    	endif
    das Öffnen des Handles passiert so:
    Code:
    if InitWebserver or htime(00,00,00) then \\
    	if log_handle>0 then \\
    		Syslog(Notice,$EIBPC flushBuffer: $+convert(ftpbuffer(log_handle)+1u16,$$)+\\
    			$ Timeout $+convert(ftptimeout(log_handle),$$)); \\
    		log_ftpstatus=flushftp(log_handle); \\
    		Syslog(Notice,$EIBPC flushStatus: $+convert(log_ftpstatus,$$)+$ - $+log_gapath+log_month+$/$+log_day); \\
    		endif; \\
    	log_handle=ftpConfig(log_gaserver,log_gauser,log_gapassword,log_gapath+log_month+$/$+log_day,log_gatimeout); \\
    	log_ftpstatus=ftpstate(log_handle); \\
    	Syslog(Notice,$EIBPC ftpStatus: $+convert(log_ftpstatus,$$)+$ - $+log_gapath+log_month+$/$+log_day); \\
    	endif
    die ftp-Parameter sind:
    log_gaserver=$192.168.1.210$
    log_gauser=$KNX$
    log_gapassword=$KNX$
    log_gapath=$HomeNet/FTP/KNX_LOG/2014/eibPC/$
    der verwendete Pfad und die ftp-Details laut Syslog: (wenn ich manuell den Buffer schreibe)
    man_ftpStatus: 5 - HomeNet/FTP/KNX_LOG/2014/eibPC/03/09
    man_flushStatus: 5 - HomeNet/FTP/KNX_LOG/2014/eibPC/03/09
    man_flushBuffer: 3382 Timeout 277
    wie geschrieben: "eigentlich" muss der Code passen - wenn das Verzeichnis angelegt ist, passt ja alles...

    Nachdem ich nicht so der Linux-Spezialist bin: wie kann ich es am NAS prüfen ob alles passt? (Synology 412+) - per Filestation anlegen geht jedenfalls

    Einen Kommentar schreiben:


  • EPIX
    antwortet
    nur zur Info: legt der eibPC das neue Verzeichnis am FTP Server auch an - oder muß dass schon vorhanden sein?

    Einen Kommentar schreiben:


  • enertegus
    antwortet
    Zitat von EPIX Beitrag anzeigen
    Hintergrund: ich möchte die Dateien in einer Datumsstruktur ablegen - dazu muss ich den ftp-Pfad um Mitternacht ändern....
    Das geht so (hier auch getestet):
    [highlight=epc]
    changepath=OFF
    newpath=$ftp/Telegramme2$
    if changepath then {
    status=flushftp(Handle);
    } endif
    if changepath and status==0 then {
    Handle=ftpConfig(server,user,password,newpath,time out)
    }endi
    [/highlight]

    Einen Kommentar schreiben:


  • EPIX
    antwortet
    *stups*

    Einen Kommentar schreiben:

Lädt...
X