将文件从AS400传输到同一网络中的另一台计算机

时间:2017-10-10 13:08:34

标签: db2 ibm-midrange iseries-navigator

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

我该怎么做?

1 个答案:

答案 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上使用sshscpsftp。这是一件很长的事情,所以你可能想要阅读它here

简短摘要是scp可能是最简单的方法。但你需要:

  1. 确保已安装操作系统的OpenSSH选项。
  2. 确保将Windows服务器设置为ssh服务器。
  3. 设置用于传输的数字密钥。私钥在客户端,公钥在服务器端。
  4. 在Pase中使用scp fromfile user@host:tofile传输文件。