-
QSHELL Log mit unlesbaren Zeichen
Hallo,
ich benötige wieder die Hilfe des Forums. Wir übertragen sFTP Daten per CL-Programm zu einem Partner. Die Datenübertragung funktioniert einwandfrei, nur beim Logging haben wir ein Problem, dass die QSH Befehle unlesbare Zeichen ins Log eintragen! Das Log liegt im IFS und wurde mit 1252 bzw. 819 Codepage erstellt (ohne Änderung).
Hier ein Beispiel:
2023-02-07-13.35.37.951605 | Kontrolle TCPSVR SERVER(*SSHD)
2023-02-07-13.35.43.393914 | Setzen der Umgebungsvariable QIBM_QSH_CMD_OUTPUT
2023-02-07-13.36.00.354156 | Setzen Passwortscript
ñõöøôöñóòù÷òõ2023-02-07-13.36.45.989022 | Daten an Guglerserver übertragen
Ö••…ƒ£…„@£–@ôöKóðKöðKöð K%¢†£—n@”—¤£@aÆÆפ‚“‰ƒa×Ä ÆÁ¤¢‡‚…aÓÅÒÓaÆã×aÓÅ\%ä—“ –„‰•‡@aÆÆפ‚“‰ƒa×ÄÆÁ¤ ‡‚…aÓÅÒÓaÆã×aÓÅððñð÷õK×Ä Æ@£–@aÓÅððñð÷õK×ÄÆ%ä—“–„ ‰•‡@aÆÆפ‚“‰ƒa×ÄÆÁ¤¢‡ …aÓÅÒÓaÆã×aÓÅððñð÷öK×ÄÆ@£– @aÓÅððñð÷öK×ÄÆ%ä—“–
Die QSH Befehle im CL sind wie folgt aufgebaut:
STRTCPSVR SERVER(*SSHD)
QSH CMD('LANG=/QSYS.LIB/DE_DE_E.LOCALE ') testweise eingebaut
QSH CMD('QIBM_CCSID=1252') testweise eingebaut
ADDENVVAR ENVVAR(QIBM_QSH_CMD_OUTPUT)
VALUE('FILEAPPEND=/home/Gugler/QSHELL_output')
LEVEL(*JOB) REPLACE(*YES) CCSID(1252) ... (CCSID wurde einmal angegeben einmal nicht)
QSH CMD('/home/Gugler/openssh_password_script.sh')
QSH CMD('exec /QOpenSys/usr/bin/ksh -c
"/home/Gugler/batch_leistungserklaerungen_sftp_script.sh")
Vielleicht finded sich ein UNIX/QSHELL Spezialist der mir diesbezüglich Tipps geben kann!
Vielen Dank im Voraus
Hermann
-
Und welche CCSID hat dein Job? Bei 65535 weiß er nicht wie umgewandelt werden soll.
Schau dir im IFS die Daten mal mit F11? (Hex) an. Es scheint EBCDIC statt ANSI zu sein.
-
Grundsätzlich versuche ich soweit es geht auf UTF-8 (CCSID 1208) zu setzen um Probleme mit Sonderzeichen & Co zu vermeiden.
Die Sonderzeichen die du hast sehen für mich etwas seltsam aus.
Wer produziert das Logging?
Oft werden die Daten einfach auf die Konsole geschrieben und die kann man dann in eine Datei umleiten lassen.
Ich verwende generell die Bash (/QOpenSys/pkgs/bin/bash).
In der Bash kannst du dann auch
cl "dspjob"
absetzen. Dort siehst du dann alle Details zu deiner Umgebung (z.B. QIBM_PASE_CCSID).
-
Hallo Fuerchau!
Ich habe deine Anweisungen befolgt und eine Datei mit Touch -C1141 ... erstellt und die vorhandenen Daten der Ursprungsdatei in diese Datei übertragen!
Zumindest kann ich jetzt wie du geschrieben hast die Daten korrekt mit WRKLNK oder EDTF korrekt lesen!!
Daten aus WRKLNK:
------------------------------------------------------------------------------
+++ Leistungserklaerungen an Gugler versenden | Benutzer: HERMANN +++
------------------------------------------------------------------------------
2023-02-13-14.03.25.976544 | Kontrolle TCPSVR SERVER(*SSHD)
2023-02-13-14.03.29.216712 | Setzen der Umgebungsvariable QIBM_QSH_CMD_OUTPUT
2023-02-13-14.03.36.321342 | Setzen Passwortscript
xxxxxxxxxxxxx2023-02-13-14.03.39.729261 | Daten an Guglerserver übertragen
Connected to xx.xx.xx.xx .
sftp> mput /FFPublic/PDFAusgabe/LEKL/FTP/LE*
Uploading /FFPublic/PDFAusgabe/LEKL/FTP/LE001075.PDF to /LE001075.PDF
Uploading /FFPublic/PDFAusgabe/LEKL/FTP/LE001076.PDF to /LE001076.PDF
Uploading /FFPublic/PDFAusgabe/LEKL/FTP/LE001875.PDF to /LE001875.PDF
sftp> quit
Aber mit einem PC Editor werden nun ALLE Daten verstümmelt angezeigt egal welche Codierung ich im Notepad++ einstelle!
Hier die Notpad++ Anzeige:
`````````````````````````````````````````````````` `````````````````````````````````````````````````` ``````````````````````````````````````````````````
%NNN@Ó…‰¢£¤•‡¢…™’“…™¤ ‡…•@•@Ǥ‡“…™@¥…™¢… „…•@»@Â…•¤£©…™z@ÈÅÙÔÁÕÕ @NNN
%````````````````````````````````````````````````` `````````````````````````````````````````````````` `````````````````````````````````````````````````` `
%òðòó`ðò`ñó`ñôKðóKòõKù÷öõôô@» @Ò–•£™–““…@ãÃ×âåÙ@âÅÙåÅ ÙM\ââÈÄ]
%òðòó`ðò`ñó`ñôKðóKòùKòñö÷ñò@» @â…£©…•@„…™@䔇…‚¤•‡ ¥™‰‚“…@ØÉÂÔmØâÈmÃÔÄmÖä ã×äã
%òðòó`ðò`ñó`ñôKðóKóöKóòñóôò@» @â…£©…•@×¢¢¦–™£¢ƒ™‰—£
%ñõöøôöñóòù÷òõòðòó`ðò`ñó`ñô KðóKóùK÷òùòöñ@»@Ä£…•@•@Ǥ ‡“…™¢…™¥…™@Ђ…™£™‡ …•
%Ö••…ƒ£…„@£–@ôöKóðKöðKö K%¢†£—n@”—¤£@aÆÆפ‚“‰ƒa× ÆÁ¤¢‡‚…aÓÅÒÓaÆã×aÓÅ\%ä— –„‰•‡@aÆÆפ‚“‰ƒa×ÄÆÁ¤ ¢‡‚…aÓÅÒÓaÆã×aÓÅððñð÷õK× Æ@£–@aÓÅððñð÷õK×ÄÆ%ä—“–
Ich denk, dass die Lösung schon relativ nahe ist!
Danke
Hermann
-
Ok, der eine Teil kommt von QSH, der andere Teil wohl von sftp.
Setze die CCSID der Log-Datei vorher einfach auf 1141, da der sftp-Teil wohl nur binär ausgeben kann.
Wenn du das Log nur auf der IBM i benötigst, hast du kein Problem.
Wenn das Log auch für Windows benötigt wird, kannst du per QSH iconv die Datei in eine andere CCSID konvertieren.
Du hast dann halt nur kein UTF8 sondern nur 1252, es sei denn du kannst sftp mit Ausgabeumleitung in eine separate Datei mit 1141 umleiten und anschließend diese an eine 1208Datei anhängen.
-
Hallo, und vielen Dank für Eure Antworten!
Ich versuche einmal Eure Fragen zu gut es geht zu beantworten:
ad Fuerchau) der codierte Zeichensatz des Jobs ist 1141
ad Andreas) wir haben schon eine IFS-Logdatei mit Zeichensatz 1208 erstellt. Das hat auch funktioniert. Nur beim öffnen der Protokolldatei erhielten wir danach einen Umsetzungsfehler und das Programm hat abgebrochen. Auch der OpsNav hat den Zeichensatz nicht korrekt angezeigt.
Die lesbaren Texte im Log kommen aus einem CL Programm welches per RPG Modul die Daten in das Log schreibt. Die unlesbaren Daten kommen dezidiert vom QSHELL (Passwortscript und Batch Script).
Bezüglich /QOpenSys/pkgs/bin/bash muss ich mich erst schlau machen.
Danke
Hermann
-
Das "@"-Zeichen (x'40') steht im EBCDIC für Blank. Also wird da wohl von einem Programm EBCDIC in die Datei kopiert. Hier ist zu prüfen, wo die Daten genau herkommen und welche CCSID die Quelldaten haben. Hier fehlt halt noch die Umwandlung.
Wenn das CL/RPG die Daten erstellt wird ggf. in EBCDIC ausgegeben.
Wenn die Daten zusammengeführt werden, sollte man in QSH mit "iconv" die Daten notfalls konvertieren.
https://www.ibm.com/docs/es/i/7.2?topic=data-iconv
-
Wenn's EBCDIC ist, müsste man es via WRKLNK lesen können.
-
Auch WRKLNK kann das nur, wenn der Inhalt zur Codepage auch passt.
Es wird dabei auch nur die STMF-CCSID in die JOB-CCSID umgewandelt.
Wenn die Datei dann 1208 hat, wird @ x'40' dann zu @ x'C0'.
-
Das lässt sich einfach testen indem man die CCSID der Datei auf z.B. 1141 ändert.
-
Dann kannst du zwar die EBCDIC-Daten lesbar machen, dafür sind die UTF8-Daten dann Schrott.
Man kann in eine IFS-Datei nicht sinnvoll unterschiedlichen Codepages schreiben
-
Hallo,
ich habe versucht WRKLNK die Daten am Greenscreen zu lesen, doch auch hier werden die Daten verstümmelt angezeigt.
Im OpsNav wird die Codepage 1252 angezeigt wobei der Eintrag für CCSID BLANK ist!
Wenn ich mit dem Befehl:
CHGATR OBJ('/home/gugler/QSHELL_output') ATR(*CCSID) VALUE(1141)
die CCSID ändere werden die Daten nicht "lesbarer".
Kann man im CL Programm QSHELL veranlassen die Daten in der richtigen CCSID bereitzustellen? Oder anders rum - welche Daten liefern die qsh Befehle?
Danke
Hermann
Similar Threads
-
By AKS1 in forum NEWSboard Programmierung
Antworten: 7
Letzter Beitrag: 15-11-19, 13:18
-
By Peter P in forum NEWSboard Programmierung
Antworten: 10
Letzter Beitrag: 09-08-17, 11:37
-
By hxiak in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 15-09-14, 18:15
-
By detfall in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 17-07-10, 17:21
-
By dabeda in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 20-08-05, 00:34
Tags for this Thread
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks