Anmelden

View Full Version : Logging von FTP Überträgen



Seiten : [1] 2

MGJ79
29-10-14, 09:52
Hallo Zusammen,

mich würde heute interessieren wie Ihr einen Zeitstempel in eine Logging Datei schreibt.
Im Regelfall machen wir einen OVRDBF(OUTPUT) auf eine Loggingdatei. Das Problem hierbei ist dass der FTP-Server mit keinem Datum oder Uhrzeit rausruckt.

Ich bin heute auf folgendes gestoßen
Warum nicht einfache ein:


QSH CMD('now=$(date) && echo "<<Abruf>> $now" >>
/QSYS.LIB/BIBL.LIB/QFTPSCRIPT.FILE/LOGGING.MBR')


davor schreiben?

Die SQL-Variante mit Alias würde auch gehen -> mehr Zeilen
Der RPG-Weg mit einen Write auf die Datei auch -> viel mehr Zeilen

Fuerchau
29-10-14, 11:15
Was stören dich ein paar Zeilen Code, da man dies nur einmalig macht?
Schreib doch ein kleines RPG dass in eine Datei OUTPUT ein Datum schreibt.

holgerscherer
02-11-14, 19:52
Was stören dich ein paar Zeilen Code, da man dies nur einmalig macht?
Schreib doch ein kleines RPG dass in eine Datei OUTPUT ein Datum schreibt.

Man könnte allerdings auch auf die Ausgabedatei einen Trigger packen, der ...

;-h

Fuerchau
03-11-14, 07:27
Nun ja, wenn die Ausgabedatei konstant ist...
Leider erlaubt ja ein Trigger kein CLRPFM mehr.

holgerscherer
03-11-14, 08:06
Nun ja, wenn die Ausgabedatei konstant ist...
Leider erlaubt ja ein Trigger kein CLRPFM mehr.

Das kann man ja vorher erledigen :)

-h

MGJ79
12-11-14, 08:20
Die Lösung das über ein RPG-Programm zu lösen ist schön+richtig+naheliegend.
Ich fand nur die Lösung interessant da man den Pfad des "scriptens" quasi beibehält und ich mir hier keine Abhängigkeit von einem anderen RPG-Programm schaffe.

Gut die Qshell ist auch eine Abhängigkeit aber die ist systemseitig wohl immer dabei.

Grüße & Danke

@holgerscherer
hmm... ein Trigger..jetzt wirds crazy. Ich kann mich irgendwie errinnern dass Trigger "Teufelszeug" sind. Aber durchaus interessant.

AG1965_2
12-11-14, 09:11
Wenn das Zielsystem auch ein IBM i ist, und man drüben Programme aufrufen darf, dann kann man ein kleines CL aufrufen, das als Fehlernachricht Datum + Uhrzeit ausgibt.



PGM
DCL VAR(&QDATETIME) TYPE(*CHAR) LEN(20) /* 12345678901234567890 */
RTVSYSVAL SYSVAL(QDATETIME) RTNVAR(&QDATETIME) /* JJJJMMTTHHNNSSXXXXXX */
SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) +
MSGDTA(&QDATETIME) MSGTYPE(*ESCAPE)
ENDPGM


Und im Skript aufrufen, sieht dann z.B. so aus:



ftp> quote rcmd call Bibliothek/programm
550-Error occurred on command call Bibliothek/programm.
550 20141112100454823942..
ftp>


Den "Error" muss man natürlich ignorieren, aber das *ESCAPE muss sein, sonst sagt der nur, dass der Befehl successful war und sonst nichts.

Volle Kontrolle hat man mit Scott Klements FTPAPI, ist aber auch ein völlig anderer Lösungsansatz. http://www.scottklement.com/ftpapi/

Fuerchau
12-11-14, 09:41
Wie wärs mit einem Journal?
Bei einem CRTPF/Create Table wird die Tabelle automatisch journalisiert, wenn das System ein Journal findet.
Bei einer statischen Ausgabedatei bleibt auch das Journal statisch.
Vorteil: Auch nach CLRPFM stehen die Daten im Journal. Per RTVJRNE in Datei kann man das dann auch auswerten.
Für Incomming FTP geht es nur über die System-API's (WRKREGINF) und die Ausgabe zu steuern.

BenderD
12-11-14, 11:06
schon zu kompliziert angefangen:
qsh cmd('date >> /QSYS.LIB/DSTERNB1.LIB/QRPGLESRC.FILE/MUELL.MBR')

was allerdings danach alles so an Vorschlägen kommt...
Könnte man da nicht noch aus einem REXX ein PHP Programm über CGI aufrufen, das eine eMail verschickt, die automatisch empfangen wird und eine Aktion auslöst?

D*B

Fuerchau
12-11-14, 11:21
@Dieter
Und das geht:confused:?