命令行下载工具aria2应用实例

简介:

aria2 是一个自由、开源、轻量级多协议和多源的命令行下载工具。它支持 HTTP/HTTPS、FTP、SFTP、 BitTorrent 和 Metalink 协议。aria2 可以通过内建的 JSON-RPC 和 XML-RPC 接口来操纵。aria2 下载文件的时候,自动验证数据块。它可以通过多个来源或者多个协议下载一个文件,并且会尝试利用你的最大下载带宽。默认情况下,所有的 Linux 发行版都包括 aria2,所以我们可以从官方库中很容易的安装。一些 GUI 下载管理器例如 uget 使用 aria2 作为插件来提高下载速度。

Aria2 特性

  • 支持 HTTP/HTTPS GET
  • 支持 HTTP 代理
  • 支持 HTTP BASIC 认证
  • 支持 HTTP 代理认证
  • 支持 FTP (主动、被动模式)
  • 通过 HTTP 代理的 FTP(GET 命令行或者隧道)
  • 分段下载
  • 支持 Cookie
  • 可以作为守护进程运行。
  • 支持使用 fast 扩展的 BitTorrent 协议
  • 支持在多文件 torrent 中选择文件
  • 支持 Metalink 3.0 版本(HTTP/FTP/BitTorrent)
  • 限制下载、上传速度

1) Linux 下安装 aria2

我们可以很容易的在所有的 Linux 发行版上安装 aria2 命令行下载器,例如 Debian、 Ubuntu、 Mint、 RHEL、 CentOS、 Fedora、 suse、 openSUSE、 Arch Linux、 Manjaro、 Mageia 等等……只需要输入下面的命令安装即可。对于 CentOS、 RHEL 系统,我们需要开启 uget 或者 RPMForge 库的支持。

 
 
  1. [对于 Debian、 Ubuntu 和 Mint] 
  2. $ sudo apt-get install aria2 
  3. [对于 CentOS、 RHEL、 Fedora 21 和更早些的操作系统] 
  4. # yum install aria2 
  5. [Fedora 22 和 之后的系统] 
  6. # dnf install aria2 
  7. [对于 suse 和 openSUSE] 
  8. # zypper install wget 
  9. [Mageia] 
  10. # urpmi aria2 
  11. [对于 Arch Linux] 
  12. $ sudo pacman -S aria2 

2) 下载单个文件

下面的命令将会从指定的 URL 中下载一个文件,并且保存在当前目录,在下载文件的过程中,我们可以看到文件的(日期、时间、下载速度和下载进度)。

 
 
  1. # aria2c https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2 
  2. [#986c80 19MiB/21MiB(90%) CN:1 DL:3.0MiB] 
  3. 03/22 09:49:13 [NOTICE] Download complete: /opt/owncloud-9.0.0.tar.bz2 
  4. Download Results: 
  5. gid   |stat|avg speed  |path/URI 
  6. ======+====+===========+======================================================= 
  7. 986c80|OK  |   3.0MiB/s|/opt/owncloud-9.0.0.tar.bz2 
  8. Status Legend: 
  9. (OK):download completed. 

3) 使用不同的名字保存文件

在初始化下载的时候,我们可以使用 -o(小写)选项在保存文件的时候使用不同的名字。这儿我们将要使用 owncloud.zip 文件名来保存文件。

 
 
  1. # aria2c -o owncloud.zip https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2 
  2. [#d31304 16MiB/21MiB(74%) CN:1 DL:6.2MiB] 
  3. 03/22 09:51:02 [NOTICE] Download complete: /opt/owncloud.zip 
  4. Download Results: 
  5. gid   |stat|avg speed  |path/URI 
  6. ======+====+===========+======================================================= 
  7. d31304|OK  |   7.3MiB/s|/opt/owncloud.zip 
  8. Status Legend: 
  9. (OK):download completed. 

4) 下载速度限制

默认情况下,aria2 会利用全部带宽来下载文件,在文件下载完成之前,我们在服务器就什么也做不了(这将会影响其他服务访问带宽)。所以在下载大文件时最好使用 –max-download-limit 选项来避免进一步的问题。

 
 
  1. # aria2c --max-download-limit=500k https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2 
  2. [#7f9fbf 21MiB/21MiB(99%) CN:1 DL:466KiB] 
  3. 03/22 09:54:51 [NOTICE] Download complete: /opt/owncloud-9.0.0.tar.bz2 
  4. Download Results: 
  5. gid   |stat|avg speed  |path/URI 
  6. ======+====+===========+======================================================= 
  7. 7f9fbf|OK  |   462KiB/s|/opt/owncloud-9.0.0.tar.bz2 
  8. Status Legend: 
  9. (OK):download completed. 

5) 下载多个文件

下面的命令将会从指定位置下载超过一个的文件并保存到当前目录,在下载文件的过程中,我们可以看到文件的(日期、时间、下载速度和下载进度)。

 
 
  1. # aria2c -Z https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2 ftp://ftp.gnu.org/gnu/wget/wget-1.17.tar.gz 
  2. [DL:1.7MiB][#53533c 272KiB/21MiB(1%)][#b52bb1 768KiB/3.6MiB(20%)] 
  3. 03/22 10:25:54 [NOTICE] Download complete: /opt/wget-1.17.tar.gz 
  4. [#53533c 18MiB/21MiB(86%) CN:1 DL:3.2MiB] 
  5. 03/22 10:25:59 [NOTICE] Download complete: /opt/owncloud-9.0.0.tar.bz2 
  6. Download Results: 
  7. gid   |stat|avg speed  |path/URI 
  8. ======+====+===========+======================================================= 
  9. b52bb1|OK  |   2.8MiB/s|/opt/wget-1.17.tar.gz 
  10. 53533c|OK  |   3.4MiB/s|/opt/owncloud-9.0.0.tar.bz2 
  11. Status Legend: 
  12. (OK):download completed. 

6) 续传未完成的下载

当你遇到一些网络连接问题或者系统问题的时候,并将要下载一个大文件(例如: ISO 镜像文件),我建议你使用 -c 选项,它可以帮助我们从该状态续传未完成的下载,并且像往常一样完成。不然的话,当你再次下载,它将会初始化新的下载,并保存成一个不同的文件名(自动的在文件名后面添加 .1 )。注意:如果出现了任何中断,aria2 使用 .aria2 后缀保存(未完成的)文件。

 
 
  1. # aria2c -c https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2 
  2. [#db0b08 8.2MiB/21MiB(38%) CN:1 DL:3.1MiB ETA:4s]^C 
  3. 03/22 10:09:26 [NOTICE] Shutdown sequence commencing... Press Ctrl-C again for emergency shutdown. 
  4. 03/22 10:09:26 [NOTICE] Download GID#db0b08bf55d5908d not complete: /opt/owncloud-9.0.0.tar.bz2 
  5. Download Results: 
  6. gid   |stat|avg speed  |path/URI 
  7. ======+====+===========+======================================================= 
  8. db0b08|INPR|   3.3MiB/s|/opt/owncloud-9.0.0.tar.bz2 
  9. Status Legend: 
  10. (INPR):download in-progress. 
  11. 如果重新启动传输,aria2 将会恢复下载。 
  12. # aria2c -c https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2 
  13. [#873d08 21MiB/21MiB(98%) CN:1 DL:2.7MiB] 
  14. 03/22 10:09:57 [NOTICE] Download complete: /opt/owncloud-9.0.0.tar.bz2 
  15. Download Results: 
  16. gid   |stat|avg speed  |path/URI 
  17. ======+====+===========+======================================================= 
  18. 873d08|OK  |   1.9MiB/s|/opt/owncloud-9.0.0.tar.bz2 
  19. Status Legend: 
  20. (OK):download completed. 

7) 从文件获取输入

就像 wget 可以从一个文件获取输入的 URL 列表来下载一样。我们需要创建一个文件,将每一个 URL 存储在单独的行中。ara2 命令行可以添加 -i 选项来执行此操作。

 
 
  1. # aria2c -i test-aria2.txt 
  2. [DL:3.9MiB][#b97984 192KiB/21MiB(0%)][#673c8e 2.5MiB/3.6MiB(69%)] 
  3. 03/22 10:14:22 [NOTICE] Download complete: /opt/wget-1.17.tar.gz 
  4. [#b97984 19MiB/21MiB(90%) CN:1 DL:2.5MiB] 
  5. 03/22 10:14:30 [NOTICE] Download complete: /opt/owncloud-9.0.0.tar.bz2 
  6. Download Results: 
  7. gid   |stat|avg speed  |path/URI 
  8. ======+====+===========+======================================================= 
  9. 673c8e|OK  |   4.3MiB/s|/opt/wget-1.17.tar.gz 
  10. b97984|OK  |   2.5MiB/s|/opt/owncloud-9.0.0.tar.bz2 
  11. Status Legend: 
  12. (OK):download completed. 

8) 每个主机使用两个连接来下载

默认情况,每次下载连接到一台服务器的最大数目,对于一条主机只能建立一条。我们可以通过 aria2 命令行添加 -x2(2 表示两个连接)来创建到每台主机的多个连接,以加快下载速度。

 
 
  1. # aria2c -x2 https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2 
  2. [#ddd4cd 18MiB/21MiB(83%) CN:1 DL:5.0MiB] 
  3. 03/22 10:16:27 [NOTICE] Download complete: /opt/owncloud-9.0.0.tar.bz2 
  4. Download Results: 
  5. gid   |stat|avg speed  |path/URI 
  6. ======+====+===========+======================================================= 
  7. ddd4cd|OK  |   5.5MiB/s|/opt/owncloud-9.0.0.tar.bz2 
  8. Status Legend: 
  9. (OK):download completed. 

9) 下载 BitTorrent 种子文件

我们可以使用 aria2 命令行直接下载一个 BitTorrent 种子文件:

 
 
  1. # aria2c https://torcache.net/torrent/C86F4E743253E0EBF3090CCFFCC9B56FA38451A3.torrent?title=[kat.cr]irudhi.suttru.2015.official.teaser.full.hd.1080p.pathi.team.sr 
  2. [#388321 0B/0B CN:1 DL:0B]                                                                                                                     
  3. 03/22 20:06:14 [NOTICE] Download complete: /opt/[kat.cr]irudhi.suttru.2015.official.teaser.full.hd.1080p.pathi.team.sr.torrent 
  4. 03/22 20:06:14 [ERROR] Exception caught 
  5. Exception: [BtPostDownloadHandler.cc:98] errorCode=25 Could not parse BitTorrent metainfo 
  6. Download Results: 
  7. gid   |stat|avg speed  |path/URI 
  8. ======+====+===========+======================================================= 
  9. 388321|OK  |    11MiB/s|/opt/[kat.cr]irudhi.suttru.2015.official.teaser.full.hd.1080p.pathi.team.sr.torrent 
  10. Status Legend: 
  11. (OK):download completed. 

10) 下载 BitTorrent 磁力链接

使用 aria2 我们也可以通过 BitTorrent 磁力链接直接下载一个种子文件:

 
 
  1. # aria2c 'magnet:?xt=urn:btih:248D0A1CD08284299DE78D5C1ED359BB46717D8C' 

11) 下载 BitTorrent Metalink 种子

我们也可以通过 aria2 命令行直接下载一个 Metalink 文件。

 
 
  1. # aria2c https://curl.haxx.se/metalink.cgi?curl=tar.bz2 

12) 从密码保护的网站下载一个文件

或者,我们也可以从一个密码保护网站下载一个文件。下面的命令行将会从一个密码保护网站中下载文件。

 
 
  1. # aria2c --http-user=xxx --http-password=xxx https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2 
  2. # aria2c --ftp-user=xxx --ftp-password=xxx ftp://ftp.gnu.org/gnu/wget/wget-1.17.tar.gz 

13) 阅读更多关于 aria2

如果你希望了解了解更多选项 —— 它们同时适用于 wget,可以输入下面的命令行在你自己的终端获取详细信息:

 
 
  1. # man aria2c 
  2. or 
  3. # aria2c --help 

谢谢欣赏 …)






作者:MAGESH MARUTHAMUTHU
来源:51CTO
目录
相关文章
|
3月前
|
Web App开发 iOS开发 MacOS
解决macOS 应用安装在下载目录时遇到的 vscode 掉登录和应用无法随机启动的问题
解决macOS 应用安装在下载目录时遇到的 vscode 掉登录和应用无法随机启动的问题
28 0
|
网络协议 Linux 数据安全/隐私保护
Cloudreve离线下载Aria2安装教程
Aria2 是 轻量级 多协议多源命令行 下载实用程序 。Aria2下载教程非常多,一些跨了一两年的,版本已经更新了几代,部分操作已经失效。
614 0
Cloudreve离线下载Aria2安装教程
|
对象存储 开发者 Python
命令行工具安装和配置 | 学习笔记
快速学习命令行工具安装和配置
115 0
命令行工具安装和配置 | 学习笔记
|
安全 网络协议 Linux
2021年11月23号 linux系统安装部署文字介绍(无命令)
2021年11月23号 linux系统安装部署文字介绍(无命令)
101 0
关于 qml从ubuntu开发迁移到目标机(定制ubuntu)上stackview无法显示(显示白屏) 的解决方法
关于 qml从ubuntu开发迁移到目标机(定制ubuntu)上stackview无法显示(显示白屏) 的解决方法
关于 qml从ubuntu开发迁移到目标机(定制ubuntu)上stackview无法显示(显示白屏) 的解决方法
ADI
[记录] VSCode添加Cmder为默认终端
[记录] VSCode添加Cmder为默认终端
ADI
379 0
|
前端开发 Shell 开发工具
前端开发工具 vscode 使用技巧篇:控制台由powershell切换为cmd方法,windows下新旧版控制台cmd与powershell互切方法
前端开发工具 vscode 使用技巧篇:控制台由powershell切换为cmd方法,windows下新旧版控制台cmd与powershell互切方法
355 0
前端开发工具 vscode 使用技巧篇:控制台由powershell切换为cmd方法,windows下新旧版控制台cmd与powershell互切方法
|
Rust JavaScript Java
命令行工具开发:如何快速实现命令行提示?
对于稍微复杂一些的命令行工具,命令行的提示功能必不可少。那么对于不同语言的开发者,有没有一种简单快捷的实现方式呢?本文分享一种快速实现的方法,使用YAML文件定义命令行工具的使用规范,再通过工具自动生成各种shell的命令行提示脚本,最后分享一些至关重要的命令行解析器。
命令行工具开发:如何快速实现命令行提示?
|
关系型数据库 PHP 数据库
使用命令行脚本安装 PrestaShop 1.6
从 1.5.4 版本开始,PrestaShop 同时还提供了命令行方式安装。 这是什么 这种特殊的安装程序能够安装的PrestaShop无需使用网络浏览器:简单地把zip归档的内容上传到Web服务器上,你可以通过你的命令行界面(CLI)安装的Prestashop。
1069 0