我刚刚升级了电脑硬件(cpu + 主板 + 显卡 + 内存 + 硬盘),所以需要安装新的操作系统。我尝试debian-6.0.6-amd64-netinst.iso
使用wget
命令但是速度实在是太慢了我无法忍受,4Kb/s ~ 17 Kb/s
慢得像一只奔跑的乌龟,如果我使用Chrome的话就更慢了。
我已阅读帮助信息获得,似乎没有选项可以使它更快。
有什么办法吗获得更快吗?或者有可能让它多线程下载?
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
答案1
为什么不尝试一下axel
?这是一个功能齐全的基于命令行的下载程序。
安装axel
并生成下载
axel -a -n [Num_of_Thread] link1 link2 link3 ...
其中,'[Num_of_Thread]'
是要下载的每个链接所要创建的并行连接数。
-a
仅显示改进的进度条。
与许多其他下载管理器不同,Axel 使用单个线程将所有数据直接下载到目标文件。这样可以节省一些时间,因为程序不必连接所有下载的部分。
答案2
我axel
试过居夫兰的推荐,但它让我大失所望。我的目标是找到一个 CLI 替代品,因为DownThemAll
它占用 CPU 和硬盘,即使在 8 核 Mac Pro 上也会降低整个系统的速度。我还想要一个多线程替代品wget
和curl
,而不是一些运行多个实例的脚本。所以我进一步搜索,找到了我认为目前最先进的多线程 CLI 下载器——aria2。我遇到的最大问题axel
是它“伪造”了通过 SSL 下载文件的过程。我发现它在使用 时这样做tcdump
。它将https
链接下载为普通的http
。这真的让我很生气,如果我不检查的话,我会有一种虚假的安全感。我认为没有多少人知道这个严重的安全漏洞。回到aria2
,它比任何其他下载器都先进。它支持 HTTP(S)、FTP、BitTorrent 和 Metalink 协议,是多平台的,并且是一个下载游击程序。与 DTA 不同,它可以最大限度地利用我 ISP 的带宽,而不会对 CPU 或硬盘造成任何负载。手册页非常长。我绝不会使用它的众多选项中的几个。哦,顺便说一句,我用 检查了它的 SSL 性能,tcdump
它很稳定,不是假的。我编写了一个脚本来模仿 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
它创建目录并下载到其中。它可以创建嵌套目录,如第二个示例所示。
欲了解更多详情,请参阅我的帖子Bash 脚本用于将文件从 URL 下载到文本文件中列出的指定目录。