美文网首页
0#3 多线程下载相关

0#3 多线程下载相关

作者: dogo_L1L | 来源:发表于2019-03-29 17:44 被阅读0次

    目录:
      |- 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

    清华源


    2.16版本.png
    1. 文本式进度指示器(-a 选项)
      指令如下:
    axel -a http://www.pjreddie.com/media/files/instances_train-val2014.zip
    

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


    图片.png
    1. 静默模式
      指令如下:
    axel -d http://www.pjreddie.com/media/files/instances_train-val2014.zip
    

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


    图片.png

    百度云链接的下载方式

    参考资料:

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

    简介

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

    安装

    1. 打开firefox


      图片.png
    2. 添加组件
      快捷键[ctrl]+[shift]+A


      图片.png

    演示

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

    图片.png

    出现导出下载的按钮

    1. 点击,并生成aria的指令
    图片.png
    图片.png
    1. 将文本复制,在终端中粘贴执行(如下)
    图片.png

    相关文章

      网友评论

          本文标题:0#3 多线程下载相关

          本文链接:https://www.haomeiwen.com/subject/xflrbqtx.html