Interface แล้วได้ TextFile 0 bytes

ระหว่างที่ใช้ให้น้องทดสอบ Container น้องแจ้งข่าวร้ายมาว่า TextFile มันออก แต่มันได้ 0 bytes !!!!!

ผมเลยใช้ให้น้องไล่คำสั่งของ Shell มา พบว่า

  • คำสั่งแรกเป็นตัว db2 export
    สรุป คำสั่งแรกปกติ ได้ textfile ไม่ 0 byte
  • คำสั่งที่สอง ตัว iconv ที่แปลง encoding
    สรุป ขัดและคำสั่งนี้แหละ ที่มันได้ TextFile 0 bytes

หลังจากรู้คำสั่งแล้วลองเข้าไปรันใน Container กันครับ จะได้รู้ว่า Error จริงมัน คือ อะไร ?

[invsapp@ae2cb3a91d84 infsys]$ iconv -f UTF-8 -t TIS-620 /usr/interface/log/infsys/ExpCashflow20220721.txt > Cashflow20220721.txt
iconv: failed to start conversion processing: No such file or directory

เจอ Error กวนตีนอีกครับ

iconv: failed to start conversion processing: No such file or directory

แต่จริงๆมันมีไฟล์นะ เลยนึกเคสตอน Implement RedHat8 ขึ้นมาได้ เกี่ยวกับ TIS-620 เลยลองคำสั่ง iconv -l ชัดเลยครับ ไม่มี TIS-620 จริงด้วย

[invsapp@ae2cb3a91d84 infsys]# iconv -l
The following list contains all the coded character sets known.  This does
not necessarily mean that all combinations of these names can be used for
the FROM and TO command line parameters.  One coded character set can be
listed with several different names (aliases).

  8859_1, 10646-1:1993, 10646-1:1993/UCS4, ANSI_X3.4-1968, ANSI_X3.4-1986,
  ANSI_X3.4, ANSI_X3.110-1983, ANSI_X3.110, ASCII, CP367, CP819, CP1252,
  CSASCII, CSA_T500-1983, CSA_T500, CSISO99NAPLPS, CSISOLATIN1, CSUCS4,
  CSUNICODE, IBM367, IBM819, ISO-8859-1, ISO-8859-15, ISO-10646-UCS-2,
  ISO-10646, ISO-10646/UCS2, ISO-10646/UCS4, ISO-10646/UTF-8, ISO-10646/UTF8,
  ISO-IR-6, ISO-IR-99, ISO-IR-100, ISO-IR-193, ISO-IR-203, ISO646-US,
  ISO8859-1, ISO8859-15, ISO88591, ISO885915, ISO_646.IRV:1991, ISO_8859-1,
  ISO_8859-1:1987, ISO_8859-15, ISO_8859-15:1998, L1, LATIN-9, LATIN1, LATIN9,
  MS-ANSI, NAPLPS, OSF00010001, OSF00010020, OSF00010100, OSF00010101,
  OSF00010102, OSF00010104, OSF00010105, OSF00010106, OSF05010001, UCS-2,
  UCS-2BE, UCS-2LE, UCS-4, UCS-4BE, UCS-4LE, UCS2, UCS4, UNICODE, UNICODEBIG,
  UNICODELITTLE, US-ASCII, US, UTF-7, UTF-8, UTF-16, UTF-16BE, UTF-16LE,
  UTF-32, UTF-32BE, UTF-32LE, UTF7, UTF8, UTF16, UTF16BE, UTF16LE, UTF32,
  UTF32BE, UTF32LE, WCHAR_T, WINDOWS-1252
  • ถ้าอยากดูเฉพาะ TIS** ใช้คำสั่งนี้ได้ครับ
iconv -l | grep TIS

Back to baseimage

  • หลังจากเจอสาเหตุที่ TextFile 0 bytes ว่าเกิดจากการที่ไม่มี TIS-620 แน่ๆ และ ผมเลยลอง pull image ที่ใช้ คือ RockLinux ที่ใช้ กับเวอร์ชันก่อนหน้ามาเทียบครับ
  • น่าจะมี Change อะไรสักอย่างแน่ๆครับ

Solution

  • ปรับแก้ docker file ให้ lock มาที่ rocky8.5 ก่อน
  • OLD
FROM rockylinux:8
  • NEW
FROM rockylinux:8.5

Reference


Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts sent to your email.