首页IT科技linux多线程实现(Linux下多线程下载工具MWget和Axel使用介绍)

linux多线程实现(Linux下多线程下载工具MWget和Axel使用介绍)

时间2025-05-05 19:50:26分类IT科技浏览4155
导读:linux运维在操作linux过程中,用得最多的linux下载工具想必一定是wget,没有看到哪一台服务器没装过wget的,或许有人使用ftp下载,也有人使用多线程的axel以及ProZilla,毫无疑问这两个工具都非常的出色,但是对于习惯使用wget的人来说显得不适应,于是老外便开发了多线程版本的wget工具mwget,m表示m...

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

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

wget vs mwget速度测试

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

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速度截图如下:

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速度截图如下

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!

Axel

运维工作中      ,常常需要下载文件      ,因为网站下载速度限制或者网络等原因导致下载让人无法忍受                 ,前面有介绍多线程wget工具mwget            ,提速不少      ,而且使用很简单           。axel使用的人更多                 ,不仅仅安装方法简单            ,命令更简单                  。往下看      。

安装Axel

RPM安装Axel(方法一)

下载地址:http://pkgs.repoforge.org/axel/

如图,选择适合你服务器的RPM

代码如下:

root@ttlsa # wget http://pkgs.repoforge.org/axel/axel-2.4-1.el6.rf.x86_64.rpm

root@ttlsa # rpm -ivh axel-2.4-1.el6.rf.x86_64.rpm

Preparing... ########################################### [100%]

1:axel ########################################### [100%]

yum安装Axel(方法二)

代码如下:
root@ttlsa # yum install axel

apt-get安装Axel

如果你是Ubuntu系统
代码如下:

root@ttlsa # axel -h

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

--max-speed=x -s x 最大速度 (字节/秒)

--num-connections=x -n x 最大连接数

--output=f -o f 指定文件名

--search[=x] -S [x] Search for mirrors and download from x servers

--header=x -H x 添加header

--user-agent=x -U x 设置用户代理

--no-proxy -N 不使用任何代理

--quiet -q Leave stdout alone

--verbose -v 显示更多状态信息

--alternate -a 显示简单进度条

--help -h 帮助

--version -V 版本信息

axel使用实例

下载centos
代码如下:

root@ttlsa # axel http://mirrors.btte.net/centos/6.5/isos/x86_64/CentOS-6.5-x86_64-bin-DVD1.iso

[ 1%] .......... .......... .......... .......... .......... [4654.5KB/s]

[ 1%] .......... .......... .......... .......... .......... [4657.1KB/s]

[ 1%] .......... .......... .......... .......... .......... [4656.5KB/s]

[ 1%] .......... .......... .......... .......... .......... [4659.3KB/s]

下载运维生存时间某图片

代码如下:

root@ttlsa # axel http://www.ttlsa.com/wp-content/uploads/2014/04/zabbix-adduser-01.jpg

Initializing download: https://www.yuucn.com/wp-content/uploads/2022/04/1650720329-ab5ed26214430be.jpg

File size: 73009 bytes

Opening output file zabbix-adduser-01.jpg

Starting download

root@ttlsa # axel https://www.yuucn.com/wp-content/uploads/2022/04/1650720329-ab5ed26214430be.jpg

Initializing download: https://www.yuucn.com/wp-content/uploads/2022/04/1650720329-ab5ed26214430be.jpg

File size: 73009 bytes

Opening output file zabbix-adduser-01.jpg

Starting download

[ 0%] .......... .......... .......... .......... .......... [ 598.0KB/s]

[ 70%] .......... .......... .

Connection 0 finished

Downloaded 71.3 kilobytes in 0 seconds. (710.02 KB/s)

简单进度条

默认情况下                 ,整个屏幕都是进度条                 ,加上-a参数,进度条类似wget           。
代码如下:

root@ttlsa # axel -a http://mirrors.btte.net/centos/6.5/isos/x86_64/CentOS-6.5-x86_64-bin-DVD1.iso

Initializing download: http://mirrors.btte.net/centos/6.5/isos/x86_64/CentOS-6.5-x86_64-bin-DVD1.iso

File size: 4467982336 bytes

Opening output file CentOS-6.5-x86_64-bin-DVD1.iso

Starting download

<p>[ 1%] [0 1 2 3 ] [ 3.2MB/s] [21:47]

下载限速

ttlsa的网站带宽有限制            ,我要保证下载的同时又不影响用户的访问                 ,例如限制为1MB/s的下载速度      ,如下可以看到速度基本保证在1MB以内                  。
代码如下:

root@ttlsa # axel -s 1024000 http://mirrors.btte.net/centos/6.5/isos/x86_64/CentOS-6.5-x86_64-bin-DVD1.iso

Initializing download: http://mirrors.btte.net/centos/6.5/isos/x86_64/CentOS-6.5-x86_64-bin-DVD1.iso

File size: 4467982336 bytes

Opening output file CentOS-6.5-x86_64-bin-DVD1.iso

State file found: 30522952 bytes downloaded, 4437459384 to go.

Starting download

,,,,,,,... .......... .......... .......... .......... [ 394.8KB/s]

[ 0%] .......... .......... .......... .......... .......... [ 689.2KB/s]

[ 0%] .......... .......... .......... .......... .......... [ 879.5KB/s]

[ 0%] .......... .......... .......... .......... .......... [ 974.5KB/s]

[ 0%] .......... .......... .......... .......... .......... [1086.4KB/s]

[ 0%] .......... .......... .......... .......... .......... [ 967.5KB/s]

[ 0%] .......... .......... .......... .......... .......... [ 943.8KB/s]

[ 0%] .......... .......... .......... .......... .......... [1021.0KB/s]

[ 0%] .......... .......... .......... .......... .......... [1066.1KB/s]

最后

完成            ,方法很简单                 ,功能很简单      。运维生存时间的服务器以及安装了axel      ,你的安装了吗?
声明:本站所有文章      ,如无特殊说明或标注                 ,均为本站原创发布     。任何个人或组织            ,在未征得本站同意时      ,禁止复制           、盗用                  、采集      、发布本站内容到任何网站           、书籍等各类媒体平台                  。如若本站内容侵犯了原著者的合法权益                 ,可联系我们进行处理            。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
evo有什么用(用evo工具分析ORB-SLAM2运行TUM,KITTI,EuRoC数据集轨迹)