我想将文件发送到 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
命令,服务器以错误作为答复550
。lftp
然后中止传输。
通过使用
set ftp:use-allo false
我修好了它。