精华内容
下载资源
问答
  • 没有看到哪一台服务器没装过wget的,或许有人使用 ftp下载,也有人使用多线程的axel以及ProZilla,毫无疑问这两个工具都非常的出色,但是对于习惯使用wget的人来说显得不适应,于是老外 便开发了多线程版本的wget工具...

    linux运维在操作linux过程中,用得最多的linux下载工具想必一定是wget,没有看到哪一台服务器没装过wget的,或许有人使用 ftp下载,也有人使用多线程的axel以及ProZilla,毫无疑问这两个工具都非常的出色,但是对于习惯使用wget的人来说显得不适应,于是老外 便开发了多线程版本的wget工具mwget,m表示multi多线程的意思.

    1. 安装mwget

    官方地址:http://sourceforge.net/projects/kmphpfm/?source=dlp

    # cd /usr/local/src/

    # wget http://jaist.dl.sourceforge.net/project/kmphpfm/mwget/0.1/mwget_0.1.0.orig.tar.bz2

    # tar -xjvf mwget_0.1.0.orig.tar.bz2

    # cd mwget_0.1.0.orig

    # ./configure

    # make

    # make install

    configure过程中如果出现如下错误,请安装大于等于0.35版本的intltool

    checking for intltool >= 0.35.0... ./configure: line 6824: intltool-update: command not found

    found

    configure: error: Your intltool is too old.  You need intltool 0.35.0 or later.

    # yum install intltool

    2. wget vs mwget速度测试

    以下使用下载2.4.5版本的mongodb来取样.

    2.1 mwget速度测试

    # mwget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.5.tgz

    Begin to download: mongodb-linux-x86_64-2.4.5.tgz

    FileSize:  90M

    36% [====>         =====>        ===>          ====>          ] [ 33M] [2.0M/s] [ETA:00:28]

    mwget速度截图如下:

    1c2d017176caf0ad5d4b0169536fdf8d.pngmwget多线程下载速度

    2.2 wget速度测试

    # wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.5.tgz

    --2013-08-16 10:55:23--  http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.5.tgz

    Resolving fastdl.mongodb.org... 54.230.114.206, 54.230.113.36, 54.230.114.144, ...

    Connecting to fastdl.mongodb.org|54.230.114.206|:80... connected.

    HTTP request sent, awaiting response... 200 OK

    Length: 94827295 (90M) [application/x-tar]

    Saving to: “mongodb-linux-x86_64-2.4.5.tgz.1”

    6% [==>                                                ] 6,470,547    210K/s  eta 6m 26s

    wget速度截图如下

    78a52dc6541d6f20c71119827fac2c97.png

    wget单线程下载速度截图

    3. mwget用法:

    # mwget -h

    GNU MWget 0.1.0 ,a non-interactive and multiline network retriever of all POSTIX Systems.

    Usage:  mwget  [Options]... [URL]...

    Options:

    -b,  --debug          Show the debug message

    -c,  --count=num      Set the retry count to [num], no limit when "0", the default is "99"

    -d,  --directory=dir  Set the local direcotry to [dir], the default is "."

    -f,  --file=file      Rename the file to [file]

    -h,  --help           A brief summary of all the options

    -i,  --interval=num   Set the ftp retry interval to [num] seconds, the default is "5"

    -n,  --number=num     Use [num] connections instead of the default (4)

    -r,  --referer=URL    Include `Referer: [URL]' header in HTTP request.

    -t,  --timeout=num    Set the connection timeout to [num] seconds, the default is "30"

    -v,  --version        Show the version of the mwget and exit

    -x,  --proxy=URL      Set the proxy [URL]

    Mail bug reports and suggestions to

    On website bug reports and suggestions to

    We Welcome your BUG REPORT!

    4. 总结

    mwget虽然功能偏少,并且无法完全替代单线程版本的wget,但是对于我们基本只是用wget简单下载运维人员来说,mwget绝对是个完好的选择.

    分享地址:http://www.ttlsa.com/html/2371.html

    展开全文
  • wget下载国外包的时间特别慢,所以找到一个多线程wget下载工具mwget 安装mwget 官方地址:http://sourceforge.net/projects/kmphpfm/?source=dlp # cd /usr/local/src/ # wget ...

    wget下载国外包的时间特别慢,所以找到一个多线程wget下载工具mwget

    安装mwget

    官方地址:http://sourceforge.net/projects/kmphpfm/?source=dlp

    # cd /usr/local/src/
    # wget http://jaist.dl.sourceforge.net/project/kmphpfm/mwget/0.1/mwget_0.1.0.orig.tar.bz2
    # tar -xjvf mwget_0.1.0.orig.tar.bz2
    # cd mwget_0.1.0.orig
    # ./configure
    # make
    # make install
    

    tar -xjvf mwget_0.1.0.orig.tar.bz2时候报如下错:

    tar (child): bzip2:无法 exec: 没有那个文件或目录
    tar (child): Error is not recoverable: exiting now
    tar: Child returned status 2
    tar: Error is not recoverable: exiting now
    

    解决方法:

    yum install -y bzip2
    

    configure过程中如果出现如下错误:

    checking whether to enable maintainer-specific portions of Makefiles... no
    checking for g++... no
    checking for c++... no
    checking for gpp... no
    checking for aCC... no
    checking for CC... no
    checking for cxx... no
    checking for cc++... no
    checking for cl.exe... no
    checking for FCC... no
    checking for KCC... no
    checking for RCC... no
    checking for xlC_r... no
    checking for xlC... no
    checking whether the C++ compiler works... no
    configure: error: in `/usr/local/src/mwget_0.1.0.orig':
    configure: error: C++ compiler cannot create executables
    See `config.log' for more details
    

    执行如下命令:

    yum install gcc gcc-c++ gcc-g77
    

    configure过程中如果出现如下错误,请安装大于等于0.35版本的intltool

    checking for intltool >= 0.35.0... ./configure: line 6824: intltool-update: comman
    d not found found
    configure: error: Your intltool is too old.  You need intltool 0.35.0 or later.
    

    执行如下命令:
    yum -y install intltool

    mwget用法:
    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]

    邮件BUG报告和讨论地址:sa@kmlinux.tkxiao_suo@hotmail.com
    BUG报告与讨论网站:http://mwget.sourceforge.net/ http://www.kmlinux.tk/
    我们欢迎您的BUG报告和建议!(喵~)

    展开全文
  • 没有看到哪一台服务器没装过wget的,或许有人使用 ftp下载,也有人使用多线程的axel以及ProZilla,毫无疑问这两个工具都非常的出色,但是对于习惯使用wget的人来说显得不适应,于是老外 便开发了多线程版本的wget工具...

    https://my.oschina.net/766/blog/156807

    linux运维在操作linux过程中,用得最多的linux下载工具想必一定是wget,没有看到哪一台服务器没装过wget的,或许有人使用 ftp下载,也有人使用多线程的axel以及ProZilla,毫无疑问这两个工具都非常的出色,但是对于习惯使用wget的人来说显得不适应,于是老外 便开发了多线程版本的wget工具mwget,m表示multi多线程的意思.

    1. 安装mwget

    官方地址:http://sourceforge.net/projects/kmphpfm/?source=dlp

    
    # cd /usr/local/src/
    # wget http://jaist.dl.sourceforge.net/project/kmphpfm/mwget/0.1/mwget_0.1.0.orig.tar.bz2
    # tar -xjvf mwget_0.1.0.orig.tar.bz2
    # cd mwget_0.1.0.orig
    # ./configure
    # make
    # make install
    
    

    configure过程中如果出现如下错误,请安装大于等于0.35版本的intltool

    checking for intltool >= 0.35.0… ./configure: line 6824: intltool-update: command not found
    found
    configure: error: Your intltool is too old. You need intltool 0.35.0 or later.

    # yum install intltool
    
    

    2. wget vs mwget速度测试

    以下使用下载2.4.5版本的mongodb来取样.

    2.1 mwget速度测试

    # mwget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.5.tgz
    Begin to download: mongodb-linux-x86_64-2.4.5.tgz
    FileSize:  90M
     36% [====>         =====>        ===>          ====>          ] [ 33M] [2.0M/s] [ETA:00:28]
    
    

    mwget速度截图如下:
    在这里插入图片描述

    2.2 wget速度测试

    # wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.5.tgz
    --2013-08-16 10:55:23--  http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.5.tgz
    Resolving fastdl.mongodb.org... 54.230.114.206, 54.230.113.36, 54.230.114.144, ...
    Connecting to fastdl.mongodb.org|54.230.114.206|:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 94827295 (90M) [application/x-tar]
    Saving to: “mongodb-linux-x86_64-2.4.5.tgz.1”
    
     6% [==>                                                ] 6,470,547    210K/s  eta 6m 26s
     
    

    wget速度截图如下

    在这里插入图片描述

    3. mwget用法:

    # mwget -h
    GNU MWget 0.1.0 ,a non-interactive and multiline network retriever of all POSTIX Systems.
    Usage:  mwget  [Options]... [URL]...
    Options:
      -b,  --debug          Show the debug message
      -c,  --count=num      Set the retry count to [num], no limit when "0", the default is "99"
      -d,  --directory=dir  Set the local direcotry to [dir], the default is "."
      -f,  --file=file      Rename the file to [file]
      -h,  --help           A brief summary of all the options
      -i,  --interval=num   Set the ftp retry interval to [num] seconds, the default is "5"
      -n,  --number=num     Use [num] connections instead of the default (4)
      -r,  --referer=URL    Include `Referer: [URL]' header in HTTP request.
      -t,  --timeout=num    Set the connection timeout to [num] seconds, the default is "30"
      -v,  --version        Show the version of the mwget and exit
      -x,  --proxy=URL      Set the proxy [URL]
    
    Mail bug reports and suggestions to <sa@kmlinux.tk><xiao_suo@hotmail.com>
    On website bug reports and suggestions to <http://mwget.sourceforge.net/> <http://www.kmlinux.tk/>
    We Welcome your BUG REPORT!
    
    

    4. 总结

    mwget虽然功能偏少,并且无法完全替代单线程版本的wget,但是对于我们基本只是用wget简单下载运维人员来说,mwget绝对是个完好的选择.

    分享来源:mwget 多线程版本wget下载工具

    分享地址:http://www.ttlsa.com/html/2371.html

    展开全文
  • python + wget多线程下载

    2020-07-28 13:09:44
    python + wget多线程下载读取链接下载函数MyThread并行下载代码 由于有个项目需要下载大量数据,数据大多是每个100MB左右,所以我想使用python + wget多线程下载的方式下载,设定下载子线程个数不得多于设定的个数,...


    由于有个项目需要下载大量数据,数据大多是每个100MB左右,所以我想使用python + wget多线程下载的方式下载,设定下载子线程个数不得多于设定的个数,已经带有超时和重试次数的设定。

    读取链接

    这些链接我是从另外一个程序得到的,主要是是读取fits文件,然后将适合的链接输出到txt里,这里的readline_txt函数就是将txt里的链接读到一个列表里。

    下载函数

    Download_wget_OS(List,PATH)是利用wget shell命令来下载对应的链接,并返回此shell命令的执行状态。

    MyThread

    我写了个Thread的子类,对应我需要的情况,主要是增加返回值,用于检查子线程1的执行情况。

    并行下载

    Multi_process(List,PATH):#并行下载,这里的主要想法是设定一个列表,将子线程都添加进去,总线程个数>最大设定子线程个数+1,(主线程也算一个),则等待,如果小于等于就检查子线程列表里的结果,统计,并剔除掉列表里对应的完成的线程,然后再先列表添加新子线程。

    代码

    '''
    docstring
    '''
    import os
    import subprocess #shell 命令
    import threading
    import time
    
    PATH = r'./Data'
    output = './output.txt'#待下载的链接
    #结果输出
    timeout_txt = './timeout.txt'
    succeed_txt = './succeed.txt'
    wrong_txt = './wrong.txt'
    
    Max_process_number = 6 #子线程个数
    trytime = 3 #重试次数
    Timeout = 60 #超时时间
               
    def readline_txt(output):
        with open(output, 'r') as f:#读取连接
            LINK = f.readlines()#读取所有行
        read = LINK[-1]#读取最后一行
        LINK.pop()#移除掉最后一行注释
        print(read + ' check ' + str(len(LINK)))
        return LINK
    
    def writing_txt_line(file_name,contents,Mode = 1):#输出记录
        if Mode == 0 :
            with open(file_name, 'w') as f:  
                f.writelines('')
        else :
            with open(file_name, 'a') as f:  
                f.writelines(contents+'\n') 
    
    def Download_wget_OS(List,PATH): #url列表下载
        cmd = 'wget -c ' + List + ' -P '+ PATH + ' -t '+str(trytime) + ' -T ' + str(Timeout)
        #print(cmd+'\n')#打印命令
        status_subprocess = subprocess.call(cmd,shell=True)#返回程序状态
        #print('正在下载: '+List)
        #print(status_subprocess)
        file = List.rsplit('/',1)[-1]
        if status_subprocess == 0:
            print('下载成功:'+file)
            return '下载成功'
        elif status_subprocess == 1:
            print('链接错误:'+file)
            return '链接错误'
        elif status_subprocess == 4:
            print('链接超时:'+file)
            return '链接超时'
        else :
            print('其他错误:',status_subprocess,+file)
        return '其他错误'
        
    class MyThread(threading.Thread):#自己写的类,带2个输入参数
      def __init__(self, List, PATH):#必须含有__init__方法和run方法
        threading.Thread.__init__(self)#初始化 函数进入时都先执行这一块
        self.List = List
        self.PATH = PATH
        self.result = 0
      def run(self):                #然后进入函数将运行的内容
        self.result = Download_wget_OS(self.List,self.PATH)
      def get_result(self): #其它方法 返回结果
        return self.result
      def Name(self):       #其它方法 返回名字
        return self.List
        
    def Multi_process(List,PATH):#并行下载
        threads_group = []#线程池
        succeed_count = 0
        linkerror_count=0
        timeout_count = 0
        other_count = 0
        Total = len(List)
        writing_txt_line(timeout_txt, '' ,Mode=0)##清空文本
        writing_txt_line(succeed_txt, '' ,Mode=0)
        writing_txt_line(wrong_txt,   '' ,Mode=0)
        
        for i in range(len(List)):
            url_list = List[i].strip()#去掉头尾多余符号
            #总线程数小于等于Max_process_number 主线程也算一个
            
            New_threads = MyThread(url_list,PATH)#自定义的类
            threads_group.append(New_threads)    #线程名添加进池里
            New_threads.setDaemon(True)          #设为守护线程
            New_threads.start()
            
            print('启动线程:'+url_list.rsplit('/',1)[-1])
            print('总线程数:',len(threading.enumerate()),' 下载线程数:',len(threads_group))
            while (len(threading.enumerate()) > Max_process_number):
                #总线程数小于等于Max_process_number时退出
                pass#不操作
            #检查子线程 并计数
            for threads in threads_group:
                #计数部分
                if  threads.get_result() == '下载成功':
                    succeed_count = succeed_count +1
                    writing_txt_line(succeed_txt,threads.Name())#写入对应连接
                    #在这里可以加入校验
             
                elif threads.get_result() == '链接超时':
                    timeout_count = timeout_count +1
                    writing_txt_line(timeout_txt,threads.Name())#写入对应连接
                    
                elif threads.get_result() == '链接错误':
                    linkerror_count = linkerror_count +1
                    writing_txt_line(wrong_txt,  threads.Name())#写入对应连接
                    
                elif threads.get_result() == '其他错误':
                    other_count = other_count +1
                    writing_txt_line(wrong_txt,  threads.Name())#写入对应连接
           
                #移除已完成子线程
                if threads.get_result() !=  0 :# 检查哪个子线程执行完
                    print('移除线程:'+threads.Name().rsplit('/',1)[-1])
                    threads_group.remove(threads)
                    break
                print('总数:',Total,'下载成功:',succeed_count,'链接超时:',timeout_count,'链接错误:',linkerror_count,'其他错误:',other_count)         
        threads_group.join()   #需要子线程阻塞
        print('所有下载已启动')         
    
    if __name__ == '__main__':
        #Download_wget_OS(url,PATH)
        Multi_process(readline_txt(output),PATH)
        time.sleep(5)  
    
    展开全文
  • Centos 安装 Axel 多线程下载 代替 Wget

    千次阅读 2019-08-27 21:07:22
    Axel 是 Linux 平台下的一款 HTTP/FTP 的高速下载工具,支持多线程以及断点续传,对于一些有速度限制的服务器上下载东西时,Axel 的速度就明显比 wget 要快一些 Centos6 安装方法 现在网上基本都是已经废弃的...
  • 写了个抓取appstore的,要抓取大量的app,本来是用...一、独立线程读取输出信息; 二、自己实现doWaitFor方法来代替api提供的waitFor()方法,避免子进程卡死。 三、设置超时,杀死wget子进程,没有正确返回的话...
  • 偶然发现了 axel 这个支持多线程的下载工具,试用了几次之后,发现网络文件的下载速度提交了很多,决定将常用的下载工具替换为 axel。 1 安装 1、Linux 安装 CentOS 中安装 axel,axel 系统不自带,且 Yum 源也...
  • wget多线程版本(超级好用)

    千次阅读 2020-12-05 15:33:37
    wget http://jaist.dl.sourceforge.net/project/kmphpfm/mwget/0.1/mwget_0.1.0.orig.tar.bz2 # b无zip工具需要安装(已安装忽略) yum install bzip2 # 解压 bzip2 -d mwget_0.1.0.orig.tar.bz2 #再解压
  • 本程序是运用Python ,通过分析找到腾讯动漫的真实播放地址,然后用wget多线程下载
  • 在爬数据的时候很时候需要下载文件比如压缩文件,音频,视频,图片等等,这些文件通常有一个请求的url,这个时候使用request模块或者urllib模块都很慢,而且很不稳定,这个时候使用wget或者axel等系统工具并结合os模块的...
  • aria2c是一款非常好用的下载工具,支持多线程。 此处提供的是Windows版本,传输速度比wget快很多。 【使用方法】 注意:以下都是以批处理方式调用aria2c.exe 方法一:单文件下载 aria2c.exe -c -s 5 -...
  • 万一一个软件下载了一半,网断掉了,那么网恢复的时候,wget就会默认这个软件已经下载好了,因为在去下载一个文件之前,他会先生成一个.list文件,来做记录!如果直接去打开这个问题,那就是文件损坏。 axel这个...
  •  最近使用 wget 下载百度云资源,速度比较缓慢,在朋友推荐多线程下载后发现 wget 其实仅仅是一个单线程下载工具,在面对文件时会显得十分鸡肋,并且有许多诟病,比如无断点重连等等功能。 Axel 介绍 ...
  • wget http://jaist.dl.sourceforge.net/project/kmphpfm/mwget/0.1/mwget_0.1.0.orig.tar.bz2 # 安装依赖关系包: yum install bzip2 gcc-c++ openssl-devel intltool -y bzip2 -d mwget_0.1.0.orig.tar.bz2 tar -...
  • 使用多线程传输,加速下载速度2. 数据在传输过程中,进行流式md5计算,避免在传输完毕之后校验大文件3. 支持断点续传4. 支持http协议和ftp协议5. 代码尽可能的简单,利于维护 实现目标1. 使用多线程传输,加速...
  • 默认情况下,整个屏幕都是进度条,加上-a参数,进度条类似wget 1 2 3 4 5 6 7 # axel -a http://mirrors.btte.net/centos/7.2/isos/x86_64/CentOS-7.2-x86_64-bin-DVD1.iso  ...
  • 支持多线程下载、断点续传,且可以从多个地址或者从一个地址的多个连接来下载同一个文件。适合网速不给力时多线程下载提高下载速度。比如在国内VPS或服务器上下载lnmp一键安装包用Axel就比wget快。options就是下面的...
  • wget太慢,试试mwget!!! #!/bin/bash wget http://jaist.dl.sourceforge.net/project/kmphpfm/mwget/0.1/mwget_0.1.0.orig.tar.bz2 yum install bzip2 gcc-c++ openssl-devel intltool -y bzip2 -d mwget_0.1.0....
  • lftp 多线程断点续传 下载文件 wget

    千次阅读 2008-12-04 19:05:00
    原贴:http://linux.chinaunix.net/bbs/thread-1021763-1-1.htmllftp -c pget -n 10 http://url.xxx.mp3 wget断点续传是自动的,只需要加上-c参数即可,例如:wget -c http://www.abc.com/abc.zip 

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 301
精华内容 120
关键字:

多线程wget