0#3 多线程下载相关

目录:
  |- wget
  |- mwget
  |- axel
  |- 百度云链接的下载方式

wget

参考资料:

man wget
wget -h
linux wget 命令用法详解(附实例说明)

指令格式

wget [OPTION]... [URL]...

简介

wget是Linux自带的下载工具,支持FTP和HTTP等,使用比较方便。

一些选项

-O  指定输出名称
-c  断点续传
-b  后台模式,使用‘tail -f wget-log’,查看过程
--user-agent  指定发送请求时,请求头header部分
-i  下载保存在文本中连接

演示

比如下载yolov3论文的pdf文件

https://pjreddie.com/media/files/papers/YOLOv3.pdf

直接下载

wget https://pjreddie.com/media/files/papers/YOLOv3.pdf

设置输出为yolov3.pdf

wget -O yolov3.pdf https://pjreddie.com/media/files/papers/YOLOv3.pdf

设置后台模式

wget -b https://pjreddie.com/media/files/papers/YOLOv3.pdf
tail -f wget-log

mwget

参考资料:

mwget -h
安装方法

指令格式

mwget [Options]... [URL]...

简介

  mwget是仿照wget,但是解决了wget只能单线程下载文件的尴尬局面,与wget使用的方法基本一致,只是多了 ’-n’ 指定多线程的选项。但是mwget并不是系统自带的,需要另外下载。

安装方式

  1. 下载mwget源文件
wge http://jaist.dl.sourceforge.net/project/kmphpfm/mwget/0.1/mwget_0.1.0.orig.tar.bz2

可能会报错,这个是外网,有可能连接不上,于是下载好,后上传文件。
  1. 进入相应目录
cd mwget_0.1.0.orig
  1. 进行环境确认
./configure

报错如下

configure: error: Your intltool is too old.  You need intltool 0.35.0 or later.
  1. 更新intltool
sudo apt-get install intltool
  1. 重新确认环境
./configure
  1. 进行编译
make
  1. 进行安装
sudo make install
  1. 测试是否能够使用
mwget -h

输出如下:

GNU MWget 0.1.0 ,一个非交互式多线程可移植的网络文件下载工具。
用法: mwget [选项]....[URL]
选项:
  -b,  --debug          调试模式,显示调试信息
  -c,  --count=num      设置重试次数为[num],不限制次数设置为“0“,默认设置为“99”。
  -d,  --directory=dir      设置本地目录为[dir],默认值为当前目录。
  -f,   --file=file         重命名下载后文件为[file]
  -h,   --help              显示帮助信息。
  -i,   --interval=num  设置FTP重试期限为[num]秒,默认为“5“。
  -n,  --number=num     设置下载的线程数,默认开4个线程。
  -r,  --referer=URL    使用“Referer: [URL]”在HTTP头中欺骗服务器。
  -t,  --timeout=num    设置超时时间为[num]秒,默认设置是“30”。
  -v,  --version        显示mwget的版本,然后退出。
  -x,  --proxy=URL      设置代理 [URL]

一些选项

-n   设置多线程的线程数(建议设置4/8,一般校园网最高速度为1.5M)

演示

  进行8线程下载

mwget -n 8 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.3.1-Linux-x86_64.sh
图片.png

  速度约为1.5M/s,图中的’>’表明把下载过程分为8个部分。
  上面的例子中下载文件位于国内,而且只有一个文件差别不大。
[coco的数据集]作为比较

mwget -n 1 https://pjreddie.com/media/files/instances_train-val2014.zip
图片.png

大约150k的速度,下载157M文件时间需要1天。

mwget -n 8 https://pjreddie.com/media/files/instances_train-val2014.zip

图片.png

大约1.5M的速度,下载157M文件时间需要3分钟。
mwget -n 16 https://pjreddie.com/media/files/instances_train-val2014.zip
图片.png

基本同上


axel

参考资料:

axel -h
Axel多线程下载工具使用详解
axel 命令用法详解

指令格式

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

简介

  axel 是Linux下一个不错的HTTP/ftp高速下载工具。支持多线程下载、断点续传,且可以从多个地址或者从一个地址的多个连接来下载同一个文件。并且默认支持断点续传。
  默认linux中没有安装。
  安装方法:

apt-get install axel

测试方法:

axel -h

输出如下:

用法: axel [选项] 地址1 [地址2] [地址...]

--max-speed=x       -s x    指定最大速率(字节 / 秒)
--num-connections=x -n x    指定最大连接数
--output=f      -o f    指定本地输出文件
--search[=x]        -S [x]  搜索镜像并从 X 服务器下载
--no-proxy      -N  不使用任何代理服务器
--quiet         -q  使用输出简单信息模式
--verbose       -v  更多状态信息
--alternate     -a  文本式进度指示器
--help          -h  帮助信息
--version       -V  版本信息

一些选项

-n   设置多线程的个数
-o   指定输出文件
-a   文本式进度指示器
-q   静默模式

演示

  1. 多线程下载(-n 选项)
lee@lee:~/Desktop/anaconda$ axel -n 1 \
http://www.pjreddie.com/media/files/instances_train-val2014.zip

axel 出现 太多重定向 的问题
输出如下:(似乎是版本问题,清华源有2.16的版本,没有这个问题)


2.7版本.png

清华源


0#3 多线程下载相关_第1张图片
2.16版本.png
  1. 文本式进度指示器(-a 选项)
    指令如下:
axel -a http://www.pjreddie.com/media/files/instances_train-val2014.zip

输出如下:(输出不在刷屏)


0#3 多线程下载相关_第2张图片
图片.png
  1. 静默模式
    指令如下:
axel -d http://www.pjreddie.com/media/files/instances_train-val2014.zip

输出如下:(没有输出了)


图片.png

百度云链接的下载方式

参考资料:

这个资料使用的浏览器是chrome,但是Ubuntu默认的浏览器是firefox

简介

  百度云默认没有提供linux的安装包,所以linux默认不能安装百度云盘软件。当我们要从百度云盘下载文件的时候,似乎特别的麻烦,还要切换操作系统,但是这里提供了一种方式,不但可以下载百度云的资源,而且还可以不限速下载。

安装

  1. 打开firefox


    0#3 多线程下载相关_第3张图片
    图片.png
  2. 添加组件
    快捷键[ctrl]+[shift]+A


    0#3 多线程下载相关_第4张图片
    图片.png

演示

1.测试
以下的百度云链接为一次比赛的数据集
百度云链接:https://pan.baidu.com/s/1_N9v9UWWArPbq3h0oqhZ5Q
提取码:mj4a

0#3 多线程下载相关_第5张图片
图片.png

出现导出下载的按钮

  1. 点击,并生成aria的指令
0#3 多线程下载相关_第6张图片
图片.png

0#3 多线程下载相关_第7张图片
图片.png
  1. 将文本复制,在终端中粘贴执行(如下)
0#3 多线程下载相关_第8张图片
图片.png

你可能感兴趣的:(0#3 多线程下载相关)