[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte

Hybrid View

  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.241
    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
    331
    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 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

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    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.
    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
    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

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    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

  8. #8
    Registriert seit
    Nov 2020
    Beiträge
    331

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    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

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

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    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

  12. #12
    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

Similar Threads

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