分页: 1 / 1

如何进行多线程下载?

发表于 : 2010-08-11 14:30
罗非鱼
有n给网页,需要进行多线程下载,请问如何用命令行实现?
url1,url2,......urln,
好像只能用aria2\mytget,curl不行吗?

Re: 如何进行多线程下载?

发表于 : 2010-08-11 14:36
罗非鱼
看了一篇文章
Wget

  Wget是一个十分常用命令行下载工具,多数Linux发行版本都默认包含这个工具。如果没有安装可在http://www.gnu.org/software/wget/wget.html下载最新版本,并使用如下命令编译安装:

#tar zxvf wget-1.9.1.tar.gz
#cd wget-1.9.1 #./configure
#make #make install

它的用法很简单,Wget使用格式如下: #wget [选项] [下载地址]

1.Wget常用参数

  ◆-b:后台下载,Wget默认的是把文件下载到当前目录。

  ◆-O:将文件下载到指定的目录中。

  ◆-P:保存文件之前先创建指定名称的目录。

  ◆-t:尝试连接次数,当Wget无法与服务器建立连接时,尝试连接多少次。

  ◆-c:断点续传,如果下载中断,那么连接恢复时会从上次断点开始下载。

  ◆-r:使用递归下载

除了上述常用功能,Wget还支持HTTP和FTP代理功能,编辑其配置文件“/etc/wgetrc”即可。具体方法是使用VI编辑器打开上述文件,将 “http_proxy”和“ftp_proxoy”前的#去掉,然后在这两项后输入相应的代理服务器的地址,保存退出即可。此外,Wget还可下载整个网站,如下载整个Man手册中心。只需输入如下命令即可: #wget -r -p -np -k http://man.chinaunix.net

其中-r参数是指使用递归下载,-p是指下载所有显示完整网页所以需要的文件,如图片等,-np是指不搜索上层目录,-k则是指将绝对链接转换为相对链接。

  Prozilla

  Prozilla也是一个十分流行的命令行下载工具,支持多线程下载和断点续传功能。可到http://prozilla.genesys.ro/下载最新的1.3.7.4安装包,下载安装包后使用如下命令进行安装:

#tar zxvf prozilla-1.3.7.4.tar.gz
#cd prozilla-1.3.7.4
#./configure #make
#make install

  Prozilla命令格式如下: #proz [参数] [下载地址] 常用的选项有:

  ◆-k=n :设置n个线程下载。不加此参数指定线程数,Prozilla默认为4线程下载。

  ◆-P, --directory-prefix=DIR:指定将下载的文件保存在DIR/目录。

  ◆-r, --resume:继续下载未完成的文件。如果要指定线程数下载可用如下命令: #proz -k=5 http://64.12.204.21/pub/mozilla.org/fir ... ler.tar.gz 这样便以5线程进行文件的下载,并将文件保存到当前目录。和Wget一样,Prozilla也提供了续传功能,下载中断后,重新输入上述命令,就会出现提示续传,按R键就可继续下载了。



  MyGet

  MyGet目标设计成一个可扩展的,拥有丰富界面的多线程下载工具,它支持HTTP、FTP、HTTPS、MMS、RTSP等协议。在 http://myget.sourceforge.net/release/my ... 其最新版本0.1.0,下载后使用如下命令安装:

#tar jxvf myget-0.1.0.tar.bz2
#cd myget-0.1.0 #./configure
#make
#make install


  MyGet命令格式如下: #mytget [选项] [下载地址] 常用的选项:

  ◆-d [目录]:指定下载到的文件在本地存放的位置,默认当前目录。

  ◆-f [文件]:指定下载文件名称。

  ◆-h:帮助选项。

  ◆-n [线程数]:下载线程数量,默认为4个。

  ◆-x [代理服务器地址]:设置代理服务器地址,如“-x http://user:password@host:port”。 MyGet常用的形式如下: #mytget -d /root/ -n 10 http://lumaqq.linuxsir.org/download/pat ... .00.00.zip

  Linuxdown

  Linuxdown是一个命令行多线程下载工具,最多可支持30线程的下载。在https://gro.clinux.org/frs /download.php/1015/linuxdown-1.0.0.tar.gz下载最新的1.1.0版本。然后使用如下命令进行编译安装:

#tar zxvf linuxdown-1.1.0.tar.gz
#cd dandelion/
#make
#make install


  Linuxdown格式为: #linuxdown [下载地址] [选项] [线程数] 需要注意的是下载地址和选项都需要西文引号括起来,线程数不可超过30个。一个典型的下载如下: #linuxdown "http://lumaqq.linuxsir.org/download/pat ... .00.00.zip" 30

  Curl

  Curl也是Linux下不错的命令行下载工具,小巧、高速,唯一的缺点是不支持多线程下载。在http://curl.haxx.se/download/curl-7.14.0.tar.gz下载最新版本。下载后便可使用如下命令编译安装:

#tar zxvf curl-7.14.0.tar.gz
#cd curl-7.14.0/
#./configure
#make
#make test
#make install


  Curl使用格式如下: #curl [选项][下载地址] Curl典型下载如下: #curl -O http://10.1.27.10/~kennycx/tools/lumaqq ... jre.tar.gz 使用Curl下载一个文件并保存到当前目录。此外,Curl虽然不支持多线程下载,但它可同时下载多个文件或下载文件的某一部分,可使用如下命令实现: #curl -r 0-199 http://www.netscape.com/ 获得文件的前200 bytes。 对于常用的代理下载Curl也可轻松实现,具体操作如下: #curl -x 10.1.27.10:1022 ftp://ftp.funet.fi/README 使用代理地址为10.1.27.10端口为1022的代理服务器下载一个文件。 #curl -U user:passwd -x 10.1.27.10:1022 ftp://ftp.funet.fi/README 如果代理服务器需要特别的验证,则需要在user:passwd处输入合法的帐号和密码。

  Axel

  Axel是命令行下的多线程下载工具,支持断点续传,速度通常情况下是Wget的几倍。可在http://www.linuxfans.org /nuke/modules.php?name=Site_Downloads&op=mydown&did=1697下载。下载后使用如下命令编译安装:

#tar zxvf axel-1.0a.tar.gz
#cd axel-1.0a/
#./configure
#make
#make install

  基本的用法如下: #axel [选项] [下载目录] [下载地址] 一个典型下载如下: #alex -n 10 -o /home/kennycx/ http://10.1.27.10/~kennycx/tools/lumaqq ... jre.tar.gz 用10线程将指定路径的文件下载到/home/kennycx/这个目录下。

明白了,许多工具可以下载,但是有个问题不明白,我现在有n个已知的网页地址,
url1\url2\url3\......urln
请问,如何使用上面提到的任何一种,进行多线程下载,我不是一个大文件分成n部分下载的问题。

Re: 如何进行多线程下载?

发表于 : 2010-08-11 15:24
trigger
while read line
do
wget -b "$line" -o /dev/null
done <lines

Re: 如何进行多线程下载?

发表于 : 2010-08-11 15:25
xiooli
aria2c 和 axel 是可以的。

Re: 如何进行多线程下载?

发表于 : 2010-08-11 19:28
罗非鱼
3楼的方法不行,那是普通的下载,我需要同时下载

Re: 如何进行多线程下载?

发表于 : 2010-08-12 8:31
trigger
罗非鱼 写了:3楼的方法不行,那是普通的下载,我需要同时下载
不行?自己想办法吧

Re: 如何进行多线程下载?

发表于 : 2010-08-12 9:51
罗非鱼
你那是通过循环,依次一个一个的下载,没有并行的概念。

Re: 如何进行多线程下载?

发表于 : 2010-08-12 10:00
trigger
罗非鱼 写了:你那是通过循环,依次一个一个的下载,没有并行的概念。
你想要的那种“并行”用wget是不可能的。因为一个wget进程只接受一个地址,我的办法是依次打开n个进程扔进后台。

Re: 如何进行多线程下载?

发表于 : 2010-08-12 10:01
trigger
你可以用大文件测试一下

Re: 如何进行多线程下载?

发表于 : 2010-08-13 0:11
tusooa

代码: 全选

tlcr: 0 庚寅年七月初四日 00:07:25 ~
● axel --help
Usage: axel [options] url1 [url2] [url...]

--max-speed=x           -s x    Specify maximum speed (bytes per second)
--num-connections=x     -n x    Specify maximum number of connections
--output=f              -o f    Specify local output file
--search[=x]            -S [x]  Search for mirrors and download from x servers
--header=x              -H x    Add header string
--user-agent=x          -U x    Set user agent
--no-proxy              -N      Just don't use any proxy server
--quiet                 -q      Leave stdout alone
--verbose               -v      More status information
--alternate             -a      Alternate progress indicator
--help                  -h      This information
--version               -V      Version information

Report bugs to [email protected] (using reportbug)
axel uri1 uri2 ...

Re: 如何进行多线程下载?

发表于 : 2010-08-14 8:49
cosechy
exec 3<> >(:)
echo -n ...... >&3
while read line && read -n1 <&3; do (
wget "$line"
echo -n . >&3
)&done<lines
wait

Re: 如何进行多线程下载?

发表于 : 2010-08-14 18:23
longxibendi
10,多线程高速下载

软件 axel

安装 axel

$ sudo aptitude install axel

查看 axel

$ axel

Usage: axel [options] url1 [url2] [url...]




--max-speed=x -s x Specify maximum speed (bytes per second)


--num-connections=x -n x Specify maximum number of connections


--output=f -o f Specify local output file


--search[=x] -S [x] Search for mirrors and download from x servers


--no-proxy -N Just don't use any proxy server


--quiet -q Leave stdout alone


--verbose -v More status information


--alternate -a Alternate progress indicator


--help -h This information


--version -V Version information




Report bugs to [email protected]



认真从上面的帮助中能够读懂参数的内容

-n 进程数,设置n个线程下载

-o 下载目录,指定下载文件的保存目录

比如,从ubuntuchina下载,地址为,http://www.ubuntuchina.com/Download/Book01/FC.zip 学习资源,使用六个线程下载,AXEL 默认是4个。并保存到FC目录下,可以使用下面的命令:



$ axel -v -n 6 -o /home/cyq/桌面/FC http://www.ubuntuchina.com/Download/Book01/FC.zip



结果如下,


cyq@cyq-desktop:~/桌面$ axel -v -n 6 -o /home/cyq/桌面/FC http://www.ubuntuchina.com/Download/Book01/FC.zip


Initializing download: http://www.ubuntuchina.com/Download/Book01/FC.zip


File size: 4920819 bytes


Opening output file /home/cyq/桌面/FC


Starting download




[ 0%] .......... .......... .......... .......... .......... [ 30.5KB/s]


[ 1%] .......... .......... .......... .......... .......... [ 28.7KB/s]


[ 2%] .......... .......... .......... .......... .......... [ 32.8KB/s]


[ 3%] .......... .......... .......... .......... .......... [ 32.5KB/s]


[ 4%] .......... .......... .......... .......... .......... [ 29.0KB/s]


[ 5%] .......... .......... .......... .......... .......... [ 28.7KB/s]


[ 6%] .......... .......... .......... .......... .......... [ 30.4KB/s]


[ 7%] .......... .......... .......... .......... .......... [ 31.0KB/s]


[ 8%] .......... .......... .......... .......... .......... [ 26.0KB/s]


[ 9%] .......... .......... .......... .......... .......... [ 26.4KB/s]


[ 10%] .......... .......... .......... .......... .......... [ 27.3KB/s]


[ 11%] .......... .......... .......... .......... .......... [ 27.3KB/s]


[ 12%] .......... .......... .......... .......... .......... [ 27.7KB/s]


[ 13%] .......... .......... .......... .......... .......... [ 28.2KB/s]


[ 14%] .......... .......... .......... .......... .......... [ 28.0KB/s]


[ 15%] .......... .......... .......... .......... .......... [ 28.2KB/s]


[ 16%] .......... .......... .......... .......... .......... [ 27.8KB/s]


[ 17%] .......... .......... .......... .......... .......... [ 27.5KB/s]


[ 18%] .......... .......... .......... .......... .......... [ 27.5KB/s]


[ 19%] .......... .......... .......... .......... .......... [ 27.9KB/s]


[ 20%] .......... .......... .......... .......... .......... [ 27.5KB/s]


[ 21%] .......... .......... .......... .......... .......... [ 27.9KB/s]


[ 22%] .......... .......... .......... .......... .......... [ 28.0KB/s]


[ 23%] .......... .......... .......... .......... .......... [ 28.5KB/s]


[ 24%] .......... .......... .......... .......... .......... [ 28.9KB/s]


[ 26%] .......... .......... .......... .......... .......... [ 29.3KB/s]


[ 27%] .......... .......... .......... .......... .......... [ 29.5KB/s]


[ 28%] .......... .......... .......... .......... .......... [ 29.9KB/s]


[ 29%] .......... .......... .......... .......... .......... [ 30.0KB/s]


[ 30%] .......... .......... .......... .......... .......... [ 30.2KB/s]


[ 31%] .......... .......... .......... .......... .......... [ 30.8KB/s]


[ 32%] .......... .......... .......... .......... .......... [ 31.0KB/s]


[ 33%] .......... .......... .......... .......... .......... [ 31.3KB/s]


[ 34%] .......... .......... .......... .......... .......... [ 31.4KB/s]


[ 35%] .......... .......... .......... .......... .......... [ 31.6KB/s]


[ 36%] .......... .......... .......... .......... .......... [ 31.8KB/s]


[ 37%] .......... .......... .......... .......... .......... [ 31.7KB/s]


[ 38%] .......... .......... .......... .......... .......... [ 31.9KB/s]


[ 39%] .......... .......... .......... .......... .......... [ 31.9KB/s]


[ 40%] .......... .......... .......... .......... .......... [ 31.9KB/s]


[ 41%] .......... .......... .......... .......... .......... [ 31.9KB/s]


[ 42%] .......... .......... .......... .......... .......... [ 32.0KB/s]


[ 43%] .......... .......... .......... .......... .......... [ 32.4KB/s]


[ 44%] .......... .......... .......... .......... .......... [ 32.5KB/s]


[ 45%] .......... .......... .......... .......... .......... [ 32.7KB/s]


[ 46%] .......... .......... .......... .......... .......... [ 32.5KB/s]


[ 47%] .......... .......... .......... .......... .......... [ 32.2KB/s]


[ 48%] .......... .......... .......... .......... .......... [ 32.3KB/s]


[ 49%] .......... .......... .......... .......... .......... [ 32.3KB/s]


[ 50%] .......... .......... .......... .......... .......... [ 32.2KB/s]


[ 52%] .......... .......... .......... .......... .......... [ 32.4KB/s]


[ 53%] .......... .......... .......... .......... .......... [ 32.1KB/s]


[ 54%] .......... .......... .......... .......... .......... [ 32.1KB/s]


[ 55%] .......... .......... .......... .......... .......... [ 31.9KB/s]


[ 56%] .......... .......... .......... .......... .......... [ 31.9KB/s]


[ 57%] .......... .......... .......... .......... .......... [ 31.9KB/s]


[ 58%] .......... .......... .......... .......... .......... [ 32.0KB/s]


[ 59%] .......... .......... .......... .......... .......... [ 31.8KB/s]


[ 60%] .......... .......... .......... .......... .......... [ 31.7KB/s]


[ 61%] .......... .......... .......... .......... .......... [ 31.8KB/s]


[ 62%] .......... .......... .......... .......... .......... [ 32.0KB/s]


[ 63%] .......... ......


Connection 2 finished


,,,,,,,,,, ,,,,,,.... .......... .......... .......... [ 31.9KB/s]


[ 64%] .......... .......... .......... .......... .......... [ 32.0KB/s]


[ 65%] .......... .......... .......... .......... .......... [ 31.9KB/s]


[ 66%] .......... .......... .......... .......... .......... [ 31.7KB/s]


[ 67%] .......... .......... .......... .......... .......... [ 31.6KB/s]


[ 68%] .......... .......... .......... .......... .......... [ 31.6KB/s]


[ 69%] .......... .......... .......... .......... .......... [ 31.5KB/s]


[ 70%] .......... .......... .......... .......... .......... [ 31.7KB/s]


[ 71%] .......... .......... .......... .......... .......... [ 31.7KB/s]


[ 72%] .......... .......... .......... .......... .......... [ 31.8KB/s]


[ 73%] .......... .......... .......... .......... .......... [ 31.9KB/s]


[ 74%] .......... .......... .......... .......... .......... [ 32.0KB/s]


[ 75%] .......... .......... .......... .......... .......... [ 31.8KB/s]


[ 76%] .......... .......... .......... .......... .......... [ 31.9KB/s]


[ 78%] .......... .......... .......... .......... .......... [ 31.8KB/s]


[ 79%] .......... .......... .......... .......... .......... [ 31.8KB/s]


[ 80%] .......... .......... .......... .......... .......... [ 31.9KB/s]


[ 81%] .........


Connection 3 finished


,,,,,,,,,. .......... .......... .......... .......... [ 31.7KB/s]


[ 82%] .......... .......... .......... .......... .......... [ 31.5KB/s]


[ 83%] .......... .......... .......... .......... .......... [ 31.5KB/s]


[ 84%] .......... .......... .......... ..........


Connection 5 finished


,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, .......... [ 31.5KB/s]


[ 85%] .......... .......... .......... .......... .......... [ 30.1KB/s]


[ 86%] .......... .......... .......... .......... .......... [ 30.3KB/s]


[ 87%] .......... .......... .......... .......... .......... [ 30.3KB/s]


[ 88%] .........


Connection 0 finished


,,,,,,,,,. .......... .......... .......... .......... [ 30.2KB/s]


[ 89%] .......... .......... .......... .......... .......... [ 30.2KB/s]


[ 90%] .......... .......... ...


Connection 4 finished


,,,,,,,,,, ,,,,,,,,,, ,,,


Connection 1 timed out


,,,,,,,,,, ,,,,,,,,,, ,,,....... .......... .......... [ 28.1KB/s]


[ 91%] .......... .......... .......... .......... .......... [ 28.2KB/s]


[ 92%] .......... .......... .......... .......... .......... [ 28.4KB/s]


[ 93%] .......... .......... .......... .......... .......... [ 28.5KB/s]


[ 94%] .......... .......... .......... .......... .......... [ 28.6KB/s]


[ 95%] .......... .......... .......... .......... .......... [ 28.7KB/s]


[ 96%] .......... .......... .......... .......... .......... [ 28.7KB/s]


[ 97%] .......... .......... .......... .......... .......... [ 28.7KB/s]


[ 98%] .......... .......... .......... .......... .......... [ 28.8KB/s]


[ 99%] .....




Downloaded 4805.5 kilobytes in 2:46 seconds. (28.79 KB/s)

Re: 如何进行多线程下载?

发表于 : 2010-08-14 18:24
longxibendi