I'm curious now. Would passing the BINARY command to the FTP server help
avoid the encoding issues, or would you still have to explicitly work with
the correct encoding depending on the files to be transferred?
I ask because I helped a developer set up a scheduled job that runs an sFTP
transfer each night (using keys for authentication). The job calls a program
that has a CL command which calls bash script, as described at this IBM
article, and I never had to dabble with encoding.
https://www.ibm.com/support/pages/node/684869
The CL command is the following:
QSH CMD('/QOpenSys/usr/bin/sh -c "/path/to/shell/script/sftp.sh"')
The bash script is the following:
#!/QOpenSys/pkgs/bin/bash
sftp user@xxxxxxxxxxxxxx << EOF
binary
cd transfer
lcd /local/path/to/file
put *.*
exit
EOF
-----------------------------------------
Jacob Banda
-----------------------------------------
date: Fri, 18 Jun 2021 14:57:08 +0000
from: "Roche, Bob" <broche@xxxxxxxxxxxxxxxxx>
subject: Re: [IBMiOSS] [EXTERNAL] Re: sFTP File Transfer Failure
Definitely check the CCSID of the file. Unlike FTP, sFTP will not convert
the EBCDIC data to whatever the other end needs. We just started using sFTP
with a business partner and use 819 for the file we send.
From: OpenSource <opensource-bounces@xxxxxxxxxxxxxxxxxx> On Behalf Of Jim
Oberholtzer
Sent: Friday, June 18, 2021 8:30 AM
To: IBMi Open Source Roundtable <opensource@xxxxxxxxxxxxxxxxxx>
Subject: [EXTERNAL] Re: [IBMiOSS] sFTP File Transfer Failure
CCSID of the job/file?
Jim Oberholtzer
Agile Technology Architects
As an Amazon Associate we earn from qualifying purchases.