0

我正在尝试通过 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 服务器。

我怎样才能做到这一点?

4

1 回答 1

0

您可以在 IBM i 上使用 FTP。这是来自IBM 知识中心的修改示例

这是一个 CL 程序

PGM 
  OVRDBF   FILE(INPUT) TOFILE(MYLIB/QCLSRC) MBR(FTPCMDS) 
  OVRDBF   FILE(OUTPUT) TOFILE(MYLIB/QCLSRC) MBR(OUT) 
  FTP      RMTSYS(SYSxxx) 
ENDPGM 

该程序将 FTP 客户端的输入覆盖到MYLIB/QCLSRCmember中的脚本FTPCMDS,并将 FTP 客户端的输出覆盖到MYLIB/QCLSRCmember OUT。脚本的第一行必须包含远程位置的用户 ID 和密码。

以下是来自同一知识中心参考的示例脚本:

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 还介绍了如何使用sshscpsftpIBM i。这是一个很长的东西,所以你可能想在这里阅读它。

一个简短的总结是这scp可能是最简单的方法。但您需要:

  1. 确保安装了操作系统的 OpenSSH 选项。
  2. 确保您的 Windows 服务器设置为 ssh 服务器。
  3. 设置用于传输的数字密钥。私钥在客户端,公钥在服务器端。
  4. scp fromfile user@host:tofile在 Pase 中使用以传输文件。
于 2017-10-11T12:28:05.253 回答