如何使wget更快或multithreading?

我刚刚升级了我的电脑硬件(cpu +主板+显卡+内存+硬盘),因此需要安装新的操作系统。 我尝试使用wget命令下载debian-6.0.6-amd64-netinst.iso ,但速度太慢,我无法忍受。 4Kb/s ~ 17 Kb/s ,像运行的乌龟一样慢,如果我使用Chrome,速度会更慢。

我已经阅读了wget的帮助信息,似乎没有选项可以让它更快。

反正有没有让wget更快? 或者是否可以进行multithreading下载?

PS:我的带宽是4M。 我用这个命令:

 wget -c url http://hammurabi.acc.umu.se/debian-cd/6.0.6/amd64/iso-cd/debian-6.0.6-amd64-netinst.iso 

为什么不试试axel ? 它是一个完全成熟的基于命令行的下载器。
通过axel -a -n [Num_of_Thread] link1 link2 link3 ...安装axel和spawn下载axel -a -n [Num_of_Thread] link1 link2 link3 ...其中'[Num_of_Thread]'是要为每个要下载的链接创建的并行连接数。

-a只是显示改进的进度条。

我在Gufran的推荐下尝试过axel ,但它让我非常失望。 我的目标是为DownThemAll找到一个CLI替代品,因为它会占用CPU和硬盘,即使在8核Mac Pro上也会降低整个系统的速度。 我还想要一个用于wgetcurl的multithreading替换,而不是运行多个这些实例的脚本的一些kludge。 所以我进一步搜索并发现我现在认为最终最现代的multithreadingCLI下载器–aria2 。 我对axel的一个大问题是,它’伪造’通过SSL下载文件。 我用tcdump抓住了它。 它正在下载https链接作为普通的http 。 这真让我生气,如果我没有检查,我会有一种虚假的安全感。 我怀疑很多人都知道这种严重的安全漏洞。 回到aria2 ,它比任何其他下载器更先进。 它支持HTTP(S),FTP,BitTorrent和Metalink协议,是多平台的,是一个下载游击队。 与DTA不同,它可以在CPU或硬盘上无负载的情况下最大化我的ISP带宽。 手册页是巨大的。 我永远不会使用其中的一些选项。 哦,BTW,我用tcdump检查了它的SSL性能,它是坚固的,而不是假的。 我写了一个模仿DTA行为的脚本,如果不方便的话。

我用来获取最大带宽的基本命令是

 aria2c --file-allocation=none -c -x 10 -s 10 -d "mydir" URL 

如果中断, -c允许继续下载, -x 10-s 10允许每个服务器最多10个连接, -d "mydir"文件输出到目录mydir

aria2files.sh

 #!/bin/bash filename="$1" # get filename from command line argument while read -r line do if [ "$line" ] # skip blank lines then if [[ "$line" =~ (https?|ftp)\:\/\/ ]] # line contains a URL, download file then echo "URL: '$line'" aria2c --file-allocation=none -c -x 10 -s 10 -d "$currdir" "$line" else # line contains a directory name, create directory if not already present echo "Directory: '$line'" currdir="$line" if [ ! -d "$currdir" ] then mkdir -p "$currdir" # '-p' enables creation of nested directories in one command fi fi fi done < "$filename" 

它读取格式的文本文件:

files.txt

 dierctory 1 url1 url2 … directory 2/subdirectory/sub-subdirectory/… url3 url4 … … … 

该脚本从命令行读取文件名:

 aria2files.sh files.txt 

它创建目录并下载到它们。 它可以创建嵌套目录,如第二个示例所示。

有关详细信息,请参阅我的postBash脚本,以将文件从URL下载到文本文件中列出的指定目录 。