linux多线程实现(Linux下多线程下载工具MWget和Axel使用介绍)
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 installconfigure过程中如果出现如下错误 ,请安装大于等于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 intltoolwget 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(方法二)
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使用实例
下载centosroot@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 finishedDownloaded 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版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!