我在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
问题是,当执行它时,它会返回以下信息:
ftp> QUOTE RCMD CHGUSRPRF USRPRF(INT0000279) STATUS(*ENABLED)
**?Invalid command**
ftp>
如果我从windows运行脚本,它可以工作,但在linux 上失败
我应该在linux上安装任何依赖项以使其成功运行吗?
我感谢你的帮助
ftp从bash命令行到ibmi:对我有效
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..
你能在bash脚本之外一次运行一个命令吗?
FTP是一种文件传输协议。如果要执行命令,则需要使用SSH。
您的错误不是linux或bash错误,而是ftp错误。ftpd(FTP守护进程(不使用AS400。
通过ssh连接,并在AS400机器上提供的shell中输入有效命令。类似于:
ssh user@server command
这将以"用户"身份连接到名为"服务器"的主机并执行"命令"。您应该研究ssh
,也许可以在man ssh
上搜索man文件的在线版本。