linux - lftp pget ...不打开多线程

标签 linux bash ubuntu lftp

我正在尝试使用 lftp 通过 ftp 下载一个非常大的文件。但据我通过 netstat -na 看到的情况,pget 仅打开了一个 TCP 连接。这是我的命令和调试输出:

脚本:

open -u username,password aftp.linksynergy.com
pget -n 5 /36342_2923873_mp.txt.gz -o buy.com.csv.gz

运行:

user@db1:/mnt/tmp/lftp_test$ lftp -d -f lfscript
---- Resolving host address...
---- 1 address found: 63.123.248.17
---- Connecting to aftp.linksynergy.com (63.123.248.17) port 21
<--- 220 gcws3002.private.linksynergy.com FTP server (Version wu-2.6.2-9) ready.
---> FEAT
<--- 530 Please login with USER and PASS.
---> AUTH TLS
<--- 500 AUTH command not supported.
---> USER username
<--- 331 Password required for username.
---> PASS *******
<--- 230 User username logged in.
---> FEAT
<--- 500 'FEAT': command not understood.
---> PWD
<--- 257 "/" is current directory.
---> TYPE I
<--- 200 Type set to I.
---> SIZE /36342_2923873_mp.txt.gz
<--- 550 /home/client/username//36342_2923873_mp.txt.gz: not a plain file.
---> MDTM /36342_2923873_mp.txt.gz
<--- 550 //36342_2923873_mp.txt.gz: No such file or directory.
---> PASV
<--- 227 Entering Passive Mode (63,123,248,17,29,90)
---- Connecting data socket to (63.123.248.17) port 7514
---- Data connection established
---> RETR /36342_2923873_mp.txt.gz
<--- 150 Opening BINARY mode data connection for /home/upload/upload_bin/affiliate_download/get_merchandiser_file.pl.

请注意,多线程下载确实可以在我测试的另一台服务器(用于测试的 apache 镜像站点)上运行,因此我敢打赌,在这种特殊情况下,这只是 FTP 服务器不受支持的功能。

最佳答案

你说得很对。从输出中可以看出,服务器不响应 FEAT 命令,该命令用于确定服务器是否支持 REStart 命令(RFC3659 第 5.4 节)。

并行 FTP 下载基于假装从 N 个点重新开始下载,从每个点读取文件的 1/N,然后组合结果。由于服务器不支持 REST,因此客户端无法执行此操作。

关于linux - lftp pget ...不打开多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13814443/

相关文章:

linux - 使用脚本 shell 获取文件中每一行的最后两个字母

windows - 在文件中查找和替换的好工具?

git - 为 pull 远程分支定义 git 别名

linux - 从任何目录运行脚本

ubuntu - avconv - 传递图像路径列表

c++ - Linux 上后台 Qt 线程中的非阻塞读取导致 EAGAIN

linux - 关于pthread_cond_wait的原子性操作的问题

bash - 将文本文件中的变量加载到 bash 脚本中

mysql - 配置单元和数据库之间的健全性检查

linux - 如何在 Ubuntu 中添加用户?