linux多线程下载
一般情况,在 Linux 下我们习惯于用 wget 下载,但该工具的缺点就是无法进行多线程下载,所以往往有时候速度不够快。
这里介绍的 Axel,是 Linux 下一款不错的 HTTP 或 FTP 高速下载工具。支持多线程下载、断点续传,且可以从多个地址或者从一个地址的多个连接来下载同一个文件,适合网速不给力时多线程下载以提高下载速度。需要注意的是,该软件只有命令行界面。
QQ群:397745473
axel
CentOS 7安装Axel
目前yum官方源上没有Axel,我们无法通过yum直接进行安装,但是我们可以通过安装epel第三方源然后后yum安装axel下载工具
1 | yum install axel |
CentOS 6安装Axel:
32位CentOS 6执行下面命令:
1 | wget -c http://mirrors.sohu.com/dag/redhat/el6/en/i386/rpmforge/RPMS/axel-2.4-1.el6.rf.i686.rpm |
64位CentOS 6执行下面命令:
1 | wget -c http://mirrors.sohu.com/dag/redhat/el6/en/x86_64/rpmforge/RPMS/axel-2.4-1.el6.rf.x86_64.rpm |
Debian/Ubuntu安装Axel:
1 | apt-get install axel |
Axel命令使用方法:
1 | axel 参数 文件下载地址 |
1 |
|
Axel 在下载过程中如果遇到中断的话,在原来的目录再次执行相同的下载命令即可恢复下载进度。
这里列出我最喜欢使用的一个命令,具有很强的实用性
1 | Axel -n 线程个数 -a -v -U 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1 Safari/605.1.15' -o '目录/目标文件名' 目标URL |
两个细节
用户代理问题
有些网站需要模拟请求头的 User-agent 从而能够解析 URL。
那么请求头又从哪里获得呢?这可难不住我们,模拟一个 User-Agent 请求头就可以解决了。User-Agent 可以直接复制浏览器 -> 开发者模式(F12或者 cmd + option + i) -> 网络-> 请求头 -> User-Agent 比如我的就是 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1 Safari/605.1.15。
2.目录问题
指定的目录需要是已存在的目录,命令行的程序通常都并不会新建目录。
多线程下载一篇论文并保证在后台进行,即使退出该终端也没有关系
1 | nohup Axel -n 10 -U 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1 Safari/605.1.15' -o 'paper.pdf' http://www.aclweb.org/anthology/W03-0429 >OutFile.out 2>&1 & |
解决Too many redirects问题
使用 axel 报 Too many redirects 错误?
Too many redirects-重定向过多
原因是你的 axel 版本太低了!(包括yum install axel的安装)
所以你就看我咋安装就 ok 了
1 | 下载源码包 |
解决卡住在初始化时不动问题
如果yum install axel无法正常运行,可以尝试以下手动方法安装:
1 | wget 'http://www.ha97.com/code/axel-2.4.tar.gz' |
QQ群:397745473