我已经在 azure 上设置了托管 Tomcat 7 实例。我需要能够将 war 文件从位于不同 Azure 虚拟机上的 Jenkins 实例通过 FTP 传输到 tomcat webapps 文件夹。
我可以通过 filezilla 连接到 FTP 服务器并手动上传文件,但不幸的是,当尝试通过命令行 ftp 文件时,我收到错误“501 服务器无法接受参数”。
我在我的詹金斯所在的虚拟机和我自己的机器上尝试了这个简单的脚本,但我得到了同样的错误。
open [domain]
user
password
cd /site/wwwroot/bin/apache-tomcat-7.0.52/webapps
put C:\test.txt
bye
有人知道为什么 azure 上的 FTP 服务器可以通过 filezilla 访问,但不能通过命令行访问吗?
我也遇到同样的问题。
解决方案是 - 您必须将 FTP 客户端切换到被动模式:
ftp> ls
501 Server cannot accept argument.
ftp: bind: Address already in use
ftp> passive
Passive mode on.
ftp> ls
227 Entering Passive Mode (23,100,51,45,39,132).
125 Data connection already open; Transfer starting.
01-12-15 12:58AM 14501595 ROOT.war
226 Transfer complete.
我猜 Filezilla 足够聪明,可以自行切换到被动模式,这就是它开箱即用的原因。