当前位置: 首页 > news >正文

多线程下载工具axel的安装和使用

多线程下载工具axel的安装和使用


Axel是一个轻量级下载程序,它和其他加速器一样,对同一个文件建立多个连接,每个连接下载单独的文件片段以更快地完成下载。

Axel 支持 HTTP、HTTPS、FTP 和 FTPS 协议。它也可以使用多个镜像站点下载单个文件,所以,Axel 可以加速下载高达 40%(大约,我个人认为)。它非常轻量级,因为它没有依赖并且使用非常少的 CPU 和内存。

Axel 一步到位地将所有数据直接下载到目标文件(LCTT 译注:而不是像其它的下载软件那样下载成多个文件块,然后拼接)。

注意:不支持在单条命令中下载两个文件。

大多数发行版(Debian、Ubuntu、Mint、Fedora、suse、openSUSE、Arch Linux、Manjaro、Mageia 等)都有 axel 包,所以我们可以从发行版官方仓库轻松安装。对于 CentOS/RHEL,我们需要启用 EPEL Repositor

Axel的安装

在 Debian/Ubuntu/LinuxMint 上安装 Axel

sudo apt-get install axel

Axel命令及参数说明

axel使用方法为:

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

比较常用可选参数有:

--max-speed=x , -s x         最高速度x
--num-connections=x , -n x   连接数x
--output=f , -o f            下载为本地文件f
--search[=x] , -S [x]        搜索镜像
--header=x , -H x            添加头文件字符串x(指定 HTTP header)
--user-agent=x , -U x        设置用户代理(指定 HTTP user agent)
--no-proxy , -N             不使用代理服务器
--quiet , -q                静默模式
--verbose ,-v               更多状态信息
--alternate , -a            Alternate progress indicator
--help ,-h                  帮助
--version ,-V               版本信息

下载单个文件

以下命令将从给定的URL下载文件并存储在当前目录中,下载文件时,可以看到文件的信息(建立的连接数、下载速度、下载进度、完成下载所花费的时间以及连接完成的时间)。如下所示:
axel下载单个文件

用不同的名称保存文件

要使用其他名称来保存文件,启动下载时可以添加 -o(小写字母)选项和文件名。这里我们使用文件名 owncloud.tar.bz2 来保存文件。
如下所示:
axel用不同的名称保存文件

限制下载速度

默认情况下 axel 以字节/秒为单位设置下载文件的最大速度。当我们的网络连接速度较慢时,可以使用此选项。只需添加 -s 选项,后面跟字节值。这里我们要限速 512 KB/s 下载一个文件。如下所示:
axel限制下载速度

限制连接数

axel 默认建立 4 个连接以从不同的镜像获取文件。此外,我们可以通过使用 -n 选项添加更多的连接,后跟连接数10来提高下载速度。保险起见,我们添加了十个连接,但是,有可能它将花费更多时间来下载文件。
axel限制连接数

恢复未完成的下载

axel 默认具有恢复未完成的下载的行为。Axel 在下载文件时定期更新状态文件(扩展名为 .st)。由于某些原因,下载中途停止了?不用担心,只要使用相同的 axel 命令,它将会检查 file 和 file.st,如果找到,它会从停止处恢复下载。
axel恢复未完成的下载

不显示文件下载进度

如果你不想要看到文件的下载进度,只要在 axel 命令中加入 -q 选项。
axel不显示文件下载进度

替换进度条

如果你不喜欢默认的进度条,你可以使用 -a 选项来替换进度条。
axel替换进度条
我们中断了上面的下载,以便在下载文件时能清楚地显示替代进度条状态。一旦文件成功下载后,你可以看到相同的输出,如下所示。
axel替换进度条

常见用法

例如下载lnmp安装包指定10个线程,存到/tmp/:

$ axel -n 10 -o /tmp/ http://www.linuxde.net/lnmp.tar.gz

如果下载过程中下载中断可以再执行下载命令即可恢复上次的下载进度。

http://www.lryc.cn/news/6848.html

相关文章:

  • 大数据专业职业前景如何
  • 拉格朗日乘数法在原材料选择问题上的具体应用
  • 零信任-腾讯零信任iOA介绍(4)
  • 标准的maven依赖包应该包含哪些东西?
  • 网络安全-Nmap
  • 【物联网】mqtt初体验
  • 2023年阿里云活动有哪些实例规格的云服务器?如何选择这些实例规格
  • 深入理解 Handler(java 层 + native 层)
  • 初步认识操作系统(Operator System)
  • Android—HTTPS部署自签名证书
  • java基于springboot+vue微信小程序的学生健康管理
  • 金三银四丨黑蛋老师带你剖析-漏洞岗
  • pinia实战 购物车(自定义插件实现pinia持久化)
  • idea使用本地代码远程调试线上运行代码---linux环境
  • Java 基础面试题——集合
  • 编程思想、方法论和架构模式的应用
  • Vue|事件处理
  • css书写方式
  • Python网络爬虫 学习笔记(2)BeaufitulSoup库
  • JavaScript------内建对象
  • React + Redux 处理异步请求
  • 揭秘涨薪50%经验:从功能测试到自动化测试,我是如何蜕变的?
  • 【论文速递】MMM2020 - 电子科技大学提出一种新颖的局部变换模块提升小样本分割泛化性能
  • 补充前端面试题(二)
  • JavaScript原型、原型链、原型方法
  • linux篇【14】:网络https协议
  • 1.9实验9:配置虚链路
  • 三次握手-升级详解-注意问题
  • 软件架构知识3-系统复杂度-高可用性、可扩展性、低成本、安全、规模
  • SpringCloud学习笔记 - 自定义及解耦降级处理方法 - Sentinel