-
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, 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
-
QSH arbeitet ebenso mit der JOB-CCSID in 1141.
Bei der Ausgabe in eine Datei wird dann die 1141 erstellt.
Ist die Datei bereits vorhanden, wird die CCSID der Datei verwendet.
Ist keine CCSID oder *HEC(65535) angegeben, erfolgt auch keine Codewandlung.
Möchte man die CCSID ändern, so ist das vorher erforderlich.
Ein CHGATR ändert zwar die CCSID, führt aber keine Codewandlung durch.
Vor jedweder Ausgabe kann man per
touch -C 1208 FileName
eine leere Datei mit der korrekten CCSID erstellen.
-
Wenn man die Daten überhaupt nicht angezeigt bekommt, egal was man für eine CCSID (via CHGATR) setzt, dann stellt sich für mich die Frage was das für Daten sind?
Könnte es verschlüsselte Daten sein, die gar nicht angezeigt werden können?
Ich arbeite fast täglich mit der Bash auf der IBM i und hab da maximal bei Umlauten Probleme ... je nach Konfiguration.
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