让命令与交互式“ftp”一起工作,但不能与“lftp”一起工作

让命令与交互式“ftp”一起工作,但不能与“lftp”一起工作

我想将文件发送到 FTP 服务器(这超出了我的控制范围),当使用交互式 Linux 命令时ftp,这可以正常工作:

[bf@localhost sudap]$ ftp ftp.example.net
Connected to ftp.example.net (1.1.1.1).
220 Serv-U FTP Server v15.3.0 ready...
Name (ftp.example.net:bf): USERNAME
331 User name okay, need password.
Password: ********
230 User logged in, proceed.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> put myfile.xlsx 
local: myfile.xlsx remote: myfile.xlsx
227 Entering Passive Mode (13,93,54,131,92,38)
150 Opening BINARY mode data connection for myfile.xlsx.
226 Transfer complete. 39,547 bytes transferred. 123.78 KB/sec.
39547 bytes sent in 0.139 secs (284.45 Kbytes/sec)

但是,当我使用该命令执行相同操作时lftp(因为我需要在脚本中运行该命令),上传失败,并显示一条有点神秘的消息:

[bf@vps sudap]$ lftp
lftp :~> connect ftp://USERNAME:[email protected]
lftp [email protected]:~> put myfile.xlsx
put: Access failed: 550 /: No such file. (myfile.xlsx)   

我怎么才能修复这个问题呢?

答案1

事实证明(通过使用debug 5),它lftp发出一个ALLO命令,服务器以错误作为答复550lftp然后中止传输。

通过使用

set ftp:use-allo false

我修好了它。

相关内容