解决 Aria2 和 Rclone 使用中遇到的问题

请注意,本文编写于 381 天前,最后修改于 83 天前,其中某些信息可能已经过时。

遇到问题

  • Aria2 下载会产生.aria2后缀名的文件。(逼死强迫症)
  • Rclone 以挂载的方式使用不稳定,遇到进程终结、磁盘占满、宕机。

分析问题

Aria2 不会自己去删除文件,这是官方的回答,所以下载完成后.aria2文件会保留。这也导致在下载出错的时候即使你删掉了任务,下载的文件依然还在,且 Aria2 是预分配磁盘空间的,这是磁盘占满的原因之一。

Rclone 以挂载方式使用会在本地缓存文件,往挂载盘移动文件只不过是本地转移了位置而已,依然占用着磁盘空间,所以当你不断的往挂载盘移动文件磁盘就满了,这是磁盘占满的第二个原因。移动文件的过程中内存占用也很大,这也间接导致了进程终结和宕机。

解决问题

Aria2 有两个配置项 on-download-completeon-download-stop,前者可以在下载完成后执行一个脚本,后者可以在停止后执行一个脚。Aria2 会给脚本传递3个变量 $1$2$3 分别为 gid 、文件数量、文件路径。利用这些配置项和这些变量就可以实现一些功能,比如在下载完成后调用 Rclone 上传、错误停止后对文件进行删除等操作。这样就可以不用去操作繁琐的命令行,享受纯粹的下载体验。有了好的想法就要去实现,于是就写了3个脚本:

  • autoupload.sh 下载完成后执行(on-download-complete),自动调用 rclone 上传(move)到网盘,删除 .aria2 文件,过滤无用文件等。与挂载上传方式相比,这个脚本直接调用了 rclone move 命令,相当于直接上传且删除本地文件,不会产生磁盘缓存,避免不必要的磁盘空间占用。
  • delete.aria2.sh 下载完成后执行(on-download-complete),删除 .aria2 文件。在不需要上传时使用。
  • delete.sh 下载停止或错误后执行(on-download-stop),删除未下载完成的文件(包括 .aria2 文件)。避免不必要的磁盘空间占用。

这些脚本开源托管到了 GitHub,接受广大人民群众检验。既然完美解决了问题,暂且就把项目命名为 Aria2 完美配置

配置脚本

为了更方便的使用,我把 Aria2 完美配置Aria2 一键安装管理脚本进行了整合,使用此脚本安装 Aria2 的过程中会下载这套方案,省去了繁琐的手动操作。

使用其他方式安装 Aria2 可以参考下面的方法进行手动操作:

  1. 打开终端进入 aria2 配置文件夹
cd /root/.aria2
  1. 下载并编辑脚本,脚本中有中文注释,按照自己的实际情况进行修改。
wget -N https://raw.githubusercontent.com/P3TERX/aria2_perfect_config/master/delete.sh && nano delete.sh
wget -N https://raw.githubusercontent.com/P3TERX/aria2_perfect_config/master/autoupload.sh && nano autoupload.sh
  1. 给予脚本执行命令的权限:
chmod +x /root/.aria2/delete.sh
chmod +x /root/.aria2/autoupload.sh
  1. 输入命令nano /root/.aria2/aria2.conf编辑配置文件,加上下面的配置项。
on-download-complete=/root/.aria2/delete.sh
on-download-complete=/root/.aria2/autoupload.sh
  1. 重启Aria2
service aria2 restart

想了解更多 Aria2 使用技巧可以点这里

参考

Rclone 官方手册

Aria2 官方手册

添加新评论

评论列表