Linux多线程定时下载
多线程下载
axel
axel -n <线程数> -o <输出路径> <链接>
axel
会生成两个文件,一是下载文件
;另一是下载文件.st
,为axel
的下载状态文件。
axel
支持断点续传,在文件下载路径下,axel
会检查已有的下载文件与下载状态文件(下载文件.st
),接上次下载进度继续下载。
aria2
刚发现这个包,支持多线程也支持种子下载。
多线程下载:
aria2c -s 2 -x 2 https://download.freenas.org/11.2/STABLE/U7/x64/FreeNAS-11.2-U7.iso
种子下载:
aria2c -S xxx.torrent
此处参考了这个博文:
定时下载 – crontab
实现步骤
1. 创建bash执行文件,编写脚本
vi axel.sh
在axel.sh
中输入需要定时执行的代码。
本人在下载FreeNAS时遇到网络不稳定问题因此想着定时执行axel命令,示例如下。
axel -n 8 -o /home/yhzheng/download/Freenas/ https://download.freenas.org/11.2/STABLE/U7/x64/FreeNAS-11.2-U7.iso
此处记得指定下载路径,因为crontab执行axel.sh
脚本时的“当前路径”并不是axel.sh
所在的目录,为避免找不到下载文件,最好指定存储文件的绝对路径。
2. 赋予执行文件执行权限
检查axel.sh
是否有执行权限,可以用chmod
为该文件添加权限。
chmod a+x axel.sh
或者直接把文件权限改为777:
chmod 777 axel.sh
3. 编辑crontab执行脚本
crontab -e
进入crontab执行文件编辑界面。
注意:默认文件编辑器不是vi,而是Emacs。
直接输入执行指令
*/2 * * * * /home/yhzheng/download/Freenas/axel.sh > /home/yhzheng/download/Freenas/load.log 2>&1
该命令使得每2分钟执行一次axel.sh
脚本,并把执行情况(包括成功与失败的执行记录)存储在load.log
日志文件中。
crontab执行指令的语法大致如下:
共6个参数,前5个参数记录时间,最后一个参数记录待执行的指令,具体意义如下:
min | hour | day | month | week | command |
---|
更详细的使用方法可以参考这个博文:
论如何退出Emacs编辑器?
Ctrl+x
退出编辑,编辑器会提示是否保存修改内容,键入y
,然后Enter
确认保存的文件路径就可以了。
需要其他功能就类比着按着编辑器的提示来吧,我也不懂了。。。现学现卖的。。。
参考文章:
-
Linux 定时执行shell脚本命令之crontab
https://www.cnblogs.com/wenzheshen/p/8432588.html. -
Linux使用Aria2命令下载BT种子/磁力/直链文件
https://www.cnblogs.com/languang9801/p/10940779.html