将文件从AS400传输到同一网络中的另一台计算机
问题描述:
我试图通过iSeries命令将AS400上的表的数据导出到另一台计算机,但我在进程中间堆叠。我有一个存储过程,我在其中创建CSV文件,但完成后我需要将此文件传输到另一台机器(当然连接到AS400)。将文件从AS400传输到同一网络中的另一台计算机
在存储过程中,我使用CPYTOIMPF
命令将表数据导出为CSV,并将该文件写入AS400文件系统。我不知道是否有将文件直接写入另一台机器的选项。
CALL QSYS2.QCMDEXC(
'CPYTOIMPF FROMFILE(LIBRARY/TABLE) TOSTMF('/QIBM/UserData/TestFolder/2.CSV') STMFCODPAG(*PCASCII) RCDDLM(*CRLF)'
);
此步骤已完成,并且该文件被写入该目录。
现在我需要将此文件传输到连接到AS400的Web服务器,而无需在完成上述命令之后。
我该怎么做?
答
您可以在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的密码以明文形式发送以外使用。由于生产用户标识和密码必须以纯文本形式存储在源文件中,因此也可能存在安全风险。
此外,斯科特·克莱门特对如何在IBM i使用ssh
,scp
和sftp
介绍。这是一件相当长的事情,所以你可能想要阅读它here。
一个简短的总结,scp
可能是最简单的方法。但您需要:
- 确保安装了操作系统的OpenSSH选项。
- 确保您的Windows服务器设置为ssh服务器。
- 设置用于传输的数字密钥。私钥在客户端,公钥在服务器端。
- 在Pase中使用
scp fromfile [email protected]:tofile
来传输文件。
另一台机器的操作系统是什么? – mao
windows server 2008 R2 – user715079
所以你的问题是如何做AS400(i系列)和Windows服务器之间的程序文件传输?你是否计划将i-series box压缩到Windows,或者Windows从i-series中拉出文件?如果您希望i系列进行推送,请考虑SFTP(如果Windows服务器为其运行服务)。 – mao