[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Apr 2005
    Beiträge
    73

    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

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    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.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Nov 2020
    Beiträge
    315
    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).

  4. #4
    Registriert seit
    Apr 2005
    Beiträge
    73
    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

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    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
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  6. #6
    Registriert seit
    Nov 2020
    Beiträge
    315

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    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'.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  8. #8
    Registriert seit
    Nov 2020
    Beiträge
    315
    Das lässt sich einfach testen indem man die CCSID der Datei auf z.B. 1141 ändert.

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    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
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  10. #10
    Registriert seit
    Apr 2005
    Beiträge
    73
    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

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    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.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  12. #12
    Registriert seit
    Nov 2020
    Beiträge
    315
    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

  1. Lesen einer log. File mit spezieler Sortierfolge
    By AKS1 in forum NEWSboard Programmierung
    Antworten: 7
    Letzter Beitrag: 15-11-19, 14:18
  2. Kopieren IFS-Daten mit QSHELL
    By Peter P in forum NEWSboard Programmierung
    Antworten: 10
    Letzter Beitrag: 09-08-17, 12:37
  3. Qshell Umleitung find mit -exec in eine PF
    By hxiak in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 15-09-14, 19:15
  4. Erste Schritte mit QSHELL
    By detfall in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 17-07-10, 18:21
  5. Problem mit der QSHELL
    By dabeda in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 20-08-05, 01:34

Tags for this Thread

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •