我正在尝试通过iSeries命令将AS400上的表的数据导出到另一台机器,但我在进程的中间堆叠。我有一个存储过程,我在其中创建CSV文件但在完成后我需要将此文件传输到另一台机器(当然连接到AS400)。
在存储过程中,我使用CPYTOIMPF
命令将表数据导出为CSV,并在AS400文件系统上编写了该文件。我不知道是否有将文件直接写入另一台机器的选项。
CALL QSYS2.QCMDEXC(
'CPYTOIMPF FROMFILE(LIBRARY/TABLE) TOSTMF('/QIBM/UserData/TestFolder/2.CSV') STMFCODPAG(*PCASCII) RCDDLM(*CRLF)'
);
此步骤已完成,文件将写入该目录。
现在我需要在完成上述命令后将此文件传输到连接到AS400的Web服务器。
我该怎么做?
答案 0 :(得分:0)
您可以在IBM i上使用FTP。以下是IBM Knowledge Center
中的修改示例这是一个CL程序
PGM
OVRDBF FILE(INPUT) TOFILE(MYLIB/QCLSRC) MBR(FTPCMDS)
OVRDBF FILE(OUTPUT) TOFILE(MYLIB/QCLSRC) MBR(OUT)
FTP RMTSYS(SYSxxx)
ENDPGM
此程序将FTP客户端的输入覆盖到MYLIB/QCLSRC
成员FTPCMDS
中的脚本,并将FTP客户端的输出覆盖到MYLIB/QCLSRC
成员OUT
。脚本的第一行必须包含远程位置的用户标识和密码。
以下是来自同一知识中心参考的示例脚本:
ITSO ITSO <== This is the user id and password
CD ITSOLIB1
SYSCMD CHGCURLIB ITSOLIB2
GET QCLSRC.BATCHFTP QCLSRC.BATCHFTP (REPLACE
QUIT
这不应该在网络外部使用,因为用户ID密码是以纯文本形式发送的。它也可能带来安全风险,因为生产用户ID和密码必须以纯文本形式存储在源文件中。
此外,Scott Klement还介绍了如何在IBM i上使用ssh
,scp
和sftp
。这是一件很长的事情,所以你可能想要阅读它here。
简短摘要是scp
可能是最简单的方法。但你需要:
scp fromfile user@host:tofile
传输文件。