常见的AS/400 FTP问题解答


AS/400 FTP是一个很难完全搞懂的问题,因此在TechTarget的IT Knowledge Exchange(ITKE)上经常会有人提问。负责FTP安装和AS/400服务器通讯环境正式改名为“IBM iSeries”)的广域网工程师,当他们需要在WAN上FTP文件时,会发现这篇文章很有用。

问:AS/400服务器如何对FTP服务器可见?

答:首先,你要从你的服务提供商那得到一个外部IP地址,然后你必须在防火墙上设置好映射IP地址。只要AS/400有一个能够工作的默认路由,那么FTP服务器就可以使用外部IP地址访问AS/400。

另外,如果AS/400是客户端,你需要通过命令行运行FTP来连上远程主机。只要客户机可以路由到远程主机,并且防火墙开放了FTP协议端口,那么就可以通讯了。

问:我如何在AS/400运行程序 FTP到一个FILE.savf?我知道怎样在DOS窗口输入命令,但是我想借助库里的PC文件(FILE.savf)到AS/400存档文件(FILEA)来使用AS/400程序(RPGLE or CLLE)。

答:首先,在AS/400选择一个文件(example.savf )并拖拽到/home/yourname目录。

然后,运行下面命令:

  1. CPYFRMSTMF FROMSTMF( example.savf )  
  2. TOMBR( '/qsys.lib/qgpl.lib/example.file' )  
  3. MBROPT( *REPLACE )  
  4. CVTDTA( *NONE )  
  5. ENDLINFMT( *FIXED )  
  6. TABEXPN( *NO ) 

运行结果在QGPL的EXAMPLE的存档文件里。

但要满足一些条件。首先,一台NetServer服务器得运行在AS/400上,并能在windows网络中可用。在这个例子中,/home/username必须配置成共享目录并且为了使Netserver访问IFS,需要启动文件服务器。由于大多数站点是用NetServer和文件服务器,所以一切可能早都已配置好。

如果BPCS下载是直接保存到my /home/toml目录,那就不需要上述拖拽,一个单独的命令就够了。

问:如何在AS/400上编写FTP批处理程序到PPT扩展文件中?

你需要创建包含FTP命令的脚本文件,通常有下面两种方式:命令行;如果你需要做不同的转移,也可以编写程序来建立文件。但不论哪种情况,你都要用到以下命令:

  1. userid  
  2. password  
  3. cd remote_directory  
  4. lcd local_library  
  5. put local_file remote_file  
  6. (OR)  
  7. get remote_file local_file  
  8. quit  
  9.  

下面列表解释了命令行的作用

  1. remote_directory = 远程设备的目录或库  
  2. local_library = 本地设备的库  
  3. local_file = 本地设备的文件名  
  4. remote_file = 远程设备的文件名  
  5.  

根据传送的文件和位置,你也许还要其他命令,如BIN或ASCII。

执行脚本文件的最佳方法是创建一个小型CL程序:

1 对脚本文件覆盖FTP输入

  1. OVRDBF FILE(INPUT) TOFILE(YourLibrary/YourScript) 

2 对日志文件覆盖FTP输出

  1. OVRDBF FILE(OUTPUT) TOFILE(YourLibrary/LogFile) 

3 用主机名或者FTP地址开启FTP

  1. FTP RMTSYS(Your_Remote_System) 

4 移除覆盖

  1. DLTOVR FILE(*ALL) 

问:我把每天运行的报告保存在我的IFS的ABC的文件夹(wrklnk ABC)。该文件夹包含带有扩展日期的10个CSV文件夹。我该如何使用AS/400打包所有CSV文件,FTP到另外一个系统?

答:有很多不同的方法在AS/400上创建可用的ZIP文件。一个直接的方法是购买第三方产品、或是使用用户功能界面友好的系统、或是用程序代码执行zipping 文件算法。如果购买不现实或者不需要友好界面,那么安装有Qshell的AS/400s可以用Java Jar或ajar)工具来创建.ZIP兼容文件。基本使用方法是在Qshell命令行中键入“jar”。

问:我该如何从一个目录复制IFS文件到另外一个文件,然后FTP该文件?

答:使用下面CPY命令:

  1. CPY OBJ('/MyDirectory/MyFile.csv') TOOBJ('/MyOtherDirectory/MyOtherFile.x') 

为了通过FTP发送IFS文件,要使用FTP或者STRTCPFTP命令开启文件传输。登陆后,输入namefmt 1处理IFS上的分层文件系统。cd改变目录)和lcd本地改变目录)可以操纵目录架构。最后,用put命令从源地址复制某个文件到目标地址。

问:我如何在AS/400上FTP一个文件到Zebra 170Xill打印机的磁盘R上?

答:你可以定义Zebra字符打印机,就像Epson 850。有了该配置,就没必要FTP该打印文件,因为操纵系统可以管理spool文件的发送。为了配置打印机为字符打印机,在安装时候配置成generic text。如果是在AS/400上,配置也一样。Zebra打印机通过USB连到电脑。

问:通过FTP到NT卡我们在AS/400上接收到文件。我可以很方便地从NT卡FTP到AS/400。有没有方法从NT卡的AS/400上开始或者由IFS处理文件?

答:一个可行方法是在DOS批处理文件中使用RMTCMD命令,如下所示:

  1. RMTCMD RUNQRY QRY(MYLIB/MYQUERY) //10.198.16.4 

RMTCMD命令可以,但它需要有人提供用户配置信息和每次运行的密码。为了使一台服务器执行RMTCMD,你可以在iSeries Access运行CWBLOGON命令,它提供个人配置和密码。

一旦RMTCMD完成,用参数再一次运行CWBLOGON清除个人配置和密码缓存。运行带/?参数的命令,请查看Windows帮助文档。

问:为了从一台FTP服务器传送文件到iSeries,我要为FTP寻找更好的方法。传送文件依赖于一台要被更换的服务器,而FTP只能通过它。

当前进程使用FTP dir命令列出日志文件,然后创建一个即时脚本FTP该文件到iSeries。我会考虑在iSeries新建一个NETSHARE磁盘,然后在那上面传送文件,但是办公室是在WAN上的远程站点,有5250种进程通过该链路运行,外加上GUI和其他不同类型的数据和应用,我不希望它们的流量相互影响。

答:当两个系统都是iSeries,该列表可以包括DDM、SNDNETF、IFS的QFileSvr文件系统等。虽然有一些好处,如TCP,QoS,但所有这些都对共享同一信道的交互用户有潜在影响。根据数据,你可以压缩数据来降低对通信线路的影响。

另一个办法是根据数据来源,只要它们在源系统上可用,就发送单个数据而不是整个文件。如果是数据库数据,一个简单的触发程序就可以实时发送数据——直接写入到socket、DDM *DTAQ、DDM数据库或是其他相似的方法,你可以记录文件日志并且在传送到目标系统时实时接收日志图片或使用远程日志)。因为数据传播的时间周期较长,这样做将对交互式用户的潜在影响降到最小,你也可以建立自己的节流控制。
 

相关内容