FTP bash 来自 linux 的 iSeries AS400 脚本

FTP bash script for iSeries AS400 from linux

我在 nodejs 后端应用程序中有一个 bash 脚本,我需要它通过 FTP

执行 Iseries as400 指令
#!/usr/bin/bash

host='www.hosting.com'
user='username'
pass='password'

ftp -inv $host << EOF

user $user $pass

QUOTE RCMD CHGUSRPRF USRPRF(USEREXAMPLE) STATUS(*DISABLED)

bye

EOF

问题是执行的时候,returns这个:

ftp> QUOTE RCMD CHGUSRPRF USRPRF(INT0000279) STATUS(*ENABLED)
**?Invalid command**
ftp>

如果我 运行 来自 windows 的脚本有效,但在 linux

时失败

我应该在 linux 上安装任何依赖项才能成功 运行 吗?

感谢您的帮助

FTP是文件传输协议。如果要执行命令,则需要使用 SSH。

您的错误不是 linux 或 bash 错误,而是 ftp 错误。 ftpd(FTP 守护进程)不支持 AS400。

通过 ssh 连接,并在 shell AS400 机器上输入有效命令。类似于:

ssh user@server command

这将作为 'user' 连接到名为 'server' 的主机并执行 'command'。您应该研究 ssh,也许 google man ssh 以获得在线版本的 man 文件。

ftp 从 bash 命令行到 ibm i:

为我工作
steve@DESKTOP-MQ27OQB:/mnt/c/Users/srich/downloads/steve$ ftp 172.16.1.254
Connected to 172.16.1.254.
220 Connection will close if idle more than 5 minutes.
Name (172.16.1.254:steve): srichter
331 Enter password.
Password:
230 SRICHTER logged on.
Remote system type is .
ftp> quote rcmd sndmsg msg(abc) tousr(*sysopr)
250 Command sndmsg msg(abc) tousr(*sysopr) successful.
ftp> quote rcmd chgusrprf usrprf(srichter) status(*enabled)
550-Error occurred on command chgusrprf usrprf(srichter) status(*enabled).
550 *SECADM required to create or change user profiles..

你能 运行 FTP,在 bash 脚本之外,一次一个命令吗?