分类:
2010-09-10 09:11:43
内容转自IBM技术支持.简而言之
INPUT 存放FTP命令 OUTPUT 存放FTP运行log
FTP RMTSYS(ip/sys name) 运行FTP
FTP 命令介绍
“!”或 “SYSCMD”:用户可以在FTP模式中执行本地AS/400的命令。在实际工作中,这一命令非常有用,你不用退出FTP模式就可以直接执行本地AS/400的命令。
“DIR” :列出远程AS/400某个目录中的Files和Members。若你执行了“PUT”操作,用“DIR”命令查看是否将文件传到了远程AS/400中。
“PWD”:列出远程系统的当前目录中的Files和Members。
“LPWD”:本地系统的当前工作目录中的Files和Members。
“PUT”:将文件从本地系统发送到远程系统。
“MPUT”:将多个文件从本地系统发送到远程系统。
“GET”:将远程系统中的文件传回到本地系统。
“MGET”:将远程系统中的多个文件传回到本地系统。
“ASCII”:改变到ASCII模式。
“BINARY”: 改变到BINARY模式。
“EBCDIC”: 改变到EBCDIC模式。
特别注意:将含有数值类型的文件,从AS/400发送到ASCII系统时,应将文件中的数值子段改为ZONED类型,而不是PACKED类型,否则将发生不可预知的结果。
“RENAME”:更改远程系统的文件名。
“QUOTE”:执行远程服务器端的命令而不用重新登录远程系统。
“LCD”:改变本地系统的当前目录。
“CD”: 改变远程系统的当前目录。
“CDUP”:进入远程系统的父目录。
“LOCSTAT”:显示本地状态信息。
主要参数说明:
Autostart Servers: 当Autostart Servers为*YES时,一旦TCP/IP启动,FTP服务器也将自动启动。
Number of Initial servers: FTP服务器初始启动数量。根据FTP的流量而定,初始值为3,一般足够用了。
Inactivity timeout: 指出FTP客户端与服务器端在多少秒没有交互后,连接将断开。却省为300秒(5分钟)。
Coded character set identifier: 缺省值为00819,所有被传入的ASCII字符将被翻译成EBCDIC 500 代码页。也可以制定你自己的转换表。
Initial name format:缺省值为*LIBL,将所有FTP服务器的命名形式设置为NAMEFMT= 0;若此值为*PATH,则NAMEFMT=1。
Initial directory:缺省值为*CURLIB,以登录FTP服务器的用户的当前目录为FTP会话的目录;若此值为*HOMEDIR时,FTP会话的目录以用户简要表的HOMEDIR参数为准。
New file CCSID:指定用FTP创建文件的CCSID值。
启动/停止FTP服务器
手工启动FTP服务器,在AS/400命令行输入:
STRTCPSVR *FTP
手工停止所有FTP服务器,在AS/400命令行输入:
ENDTCPSVR *FTP
因为直接用ENDTCPSVR *FTP命令停止FTP服务器,用户可能会丢失数据,为了保证用户不丢失数据,应按照以下步骤处理:
1. 在AS/400的命令行输入:
WRKACTJOB SBS(QSYSWRK)
查找是否有QTFTPxxxxx(xxxxx代表5为数字)存在,若没有,则可以执行ENDTCPSVR *FTP命令;若有,则应执行第二步。
2. 确保没有用户登录FTP服务器。 在AS/400的命令行输入:
NETSTAT *CNN
查看是否有LOCAL PORT 为FTP-CON状态为ESTABLISHED的连接存在,若没有则可以执行第三步;若有,应等待用户的FTP结束,在执行第三步。
3. 在AS/400的命令行输入:
ENDTCPSVR *FTP
STRTCPSVR *FTP
也可以通过“操作导航器”(OPERATION NAVIGATOR)来实现FTP服务器的启动/停止:
1. 打开“操作导航器”,路径“Network\Servers\TCP/IP”。
2. 用鼠标右键点击“FTP SERVER”。
3. 来实现FTP服务器的启动/停止。
批方式FTP
FTP被设计为交互式TCP/IP应用,但AS/400也支持FTP批处理方式。
FTP批处理运行方式,应按照以下步骤进行:
1. 创建一个CL程序来启动FTP。
2. 创建一个含有所有交互方式FTP命令的源物理文件的成员。
3. 提交批作业运行这个CL程序。
4. 检查结果。
下面具体讨论一个例子来说明批方式FTP:
1. 创建一个CL程序
使FTP命令可以运行在批方式下。
CHGCMD CMD(QSYS/FTP) ALLOW(*ALL)
将交互输入方式改为批方式,从源物理文件成员(FTPCMDS)得到FTP命令,将FTP消息发往源物理文件成员(FTPLOG) OVRDBF FILE(INPUT) TOFILE(PFEIFFER/QCLSRC) MBR(FTPCMDS)
OVRDBF FILE(OUTPUT) TOFILE(PFEIFFER/QCLSRC) MBR(FTPLOG)
在CL程序中登录FTP。 FTP RMTSYS
CL程序源代码如下:
Columns . . . : 1 71 Browse PFEIFFER/QCLSRC
SEU==> FTPBATCH
FMT ** ...+... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7
*************** Beginning of data ***********************************
0001.00 PGM
0002.00 CHGCMD CMD(QSYS/FTP) ALLOW(*ALL)
0003.00 OVRDBF FILE(INPUT) TOFILE(PFEIFFER/QCLSRC) +
0004.00 MBR(FTPCMDS)
0005.00 OVRDBF FILE(OUTPUT) TOFILE(PFEIFFER/QCLSRC) +
0006.00 MBR(FTPLOG)
0007.00 FTP RMTSYS(LOOPBACK) /* (FTP CL Program) */ ˙A
0008.00 DLTOVR FILE(INPUT OUTPUT)
0009.00 ENDPGM
****************** End of data **************************************
F3=Exit F5=Refresh F9=Retrieve F10=Cursor F12=Cancel
F16=Repeat find F24=More keys
2. 创建FTP输入文件。
Columns . . . : 1 71 Browse PFEIFFER/QCLSRC
SEU==> FTPCMDS
FMT ** ...+... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7
*************** Beginning of data ***********************************
0001.00 hans hans
0002.00 close
0003.00 open rchrs001
0004.00 user root mozart
0005.00 ascii
0006.00 syscmd dltf file(hans/rs6)
0007.00 get /tmp/ftpput.txt hans/rs6.rs6
0008.00 close
0009.00 open mvax
0010.00 user tester test
0011.00 get [tester.hans]ftpput hans/vax.vax (replace
0012.00 close
0013.00 open rchasm02
0014.00 user hans hans
0015.00 ebcdic
0016.00 put hans/rs6.rs6 pfeiffer/rs6.rs6
0017.00 quote rcmd sndnetf file(pfeiffer/rs6) tousrid((pfeiffer rchas149))
0018.00 close
0019.00 quit
****************** End of data **************************************
F3=Exit F5=Refresh F9=Retrieve F10=Cursor F12=Cancel
F16=Repeat find F24=More keys
3. 创建 CL程序提交批作业(FTPBATCH)
Columns . . . : 1 71 Browse PFEIFFER/QCLSRC
SEU==> FTPSUBMIT
FMT ** ...+... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7
*************** Beginning of data ***********************************
0001.00 PGM
0002.00 SBMJOB CMD(CALL PGM(PFEIFFER/FTPBATCH)) +
0003.00 JOB(FTPFRIDAY) OUTQ(PFEIFFER/PFEIFFER) +
0004.00 SCDDATE(*FRI) SCDTIME(170000) /* FTP for +
0005.00 Friday, 5:00 in the afternoon */
0006.00 ENDPGM
****************** End of data **************************************
F3=Exit F5=Refresh F9=Retrieve F10=Cursor F12=Cancel
F16=Repeat find F24=More keys
4.检查FTPLOG文件就可以得知FTP是否成功。
以下为FTP命令相应的返回代码,请对照它查看FTP是否成功、纠错。
Code Description
110 Restart marker reply
120 Service ready in nnn minutes
125 Data connection already open; transfer starting
150 File starting OK; about to open data connection
200 Command OK
202 Command not implemented; not used on this system
211 System status, or system help reply
212 Directory status
213 File status
214 Help message
220 Service ready for new user
226 Closing data connection; requested file action successful
230 User logged in
250 Requested file action okay, completed
257 Path name created
331 Password required
332 Account required
425 Cannot open data connection
426 Connection closed; transfer ended abnormally
450 Requested file action not taken; file busy
451 Requested action ended abnormally; local error in processing
452 Requested action not taken; insufficient storage in system space
500 Syntax error; command unrecognized
501 Syntax error in parameters or arguments
502 Command not implemented
503 Bad sequence of commands
504 Command not implemented for that parameter
530 Logon attempt rejected
532 Need account for storing files
550 Requested action not taken; file not found or no access
551 Requested action ended abnormally; page type unknown
552 Requested file action ended abnormally; exceeded storage allocation
553 Requested action not taken; file name not allowed