aria2离线下载,rclone配置挂载

更新软件包

  • Ubuntu&Debian
    1
    apt update
  • Centos
    1
    yum update -y

安装基础组件

  • Ubuntu&Debian
    1
    apt install sudo wget curl
  • Centos
    1
    yum install sudo wget curl

安装 Aria 2 增强版

安装必要基础组件

1
apt install sudo wget curl ca-certificates

下载安装脚本

1
wget -N git.io/aria2.sh && chmod +x aria2.sh

运行安装脚本

1
./aria2.sh

配置 aria2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Aria2 一键安装管理脚本 增强版 [v2.7.4] by P3TERX.COM

0. 升级脚本
———————————————————————
1. 安装 Aria2
2. 更新 Aria2
3. 卸载 Aria2
———————————————————————
4. 启动 Aria2
5. 停止 Aria2
6. 重启 Aria2
———————————————————————
7. 修改 配置
8. 查看 配置
9. 查看 日志
10. 清空 日志
———————————————————————
11. 手动更新 BT-Tracker
12. 自动更新 BT-Tracker
———————————————————————

Aria2 状态: 未安装 | 未启动

自动更新 BT-Tracker: 未开启

请输入数字 [0-12]:

项目仓库

[https://github.com/P3TERX/aria2.sh](https://github.com/P3TERX/aria2.sh

其他操作

启动:/etc/init.d/aria2 start

停止:/etc/init.d/aria2 stop

重启:/etc/init.d/aria2 restart

查看状态:/etc/init.d/aria2 status

配置文件路径:/root/.aria2c/aria2.conf (配置文件有中文注释,若语言设置有问题会导致中文乱码)

默认下载目录:/root/downloads

Rclone 配置

vps 安装 rclone

1
curl https://rclone.org/install.sh | sudo bash

配置 rclone

1
rclone config
Rclone 挂载 webdav

以本地挂载 alist 为例,按图配置即可

创建挂载位置
1
mkdir -p /mnt/rclone/alist
将 webdav 挂载为本地目录
1
rclone mount alist: /mnt/rclone/alist --umask 0022 --default-permissions --allow-non-empty --allow-other --buffer-size 32M --low-level-retries 200 --dir-cache-time 2h --vfs-read-chunk-size 64M --vfs-read-chunk-size-limit 1G &

说明: 第一个 alist 是创建 rclone config 时的命名,第二个 alist 是创建挂载位置时的文件夹名称

卸载磁盘
1
fusermount -qzu LocalFolder

自动上传设置

创建脚本

aria2 目录运行

1
vi autoupload.sh

脚本如下 (作者:P3TERX,Github):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#!/bin/bash
#=================================================
# Description: Aria2 download completes calling Rclone upload
# Lisence: MIT
# Version: 1.8
# Author: P3TERX
# Blog: https://p3terx.com
#=================================================

downloadpath='/root/downloads' #Aria2下载目录
name='remote' #配置Rclone时填写的name
folder='/backup' #网盘里的文件夹,留空为整个网盘。
retry_num=3 #上传失败重试次数

#=================下面不需要修改===================
filepath=$3 #Aria2传递给脚本的文件路径。BT下载有多个文件时该值为文件夹内第一个文件,如/root/Download/a/b/1.mp4
rdp=${filepath#${downloadpath}/} #路径转换,去掉开头的下载路径。
path=${downloadpath}/${rdp%%/*} #路径转换。下载文件夹时为顶层文件夹路径,普通单文件下载时与文件路径相同。

Task_INFO(){
echo
echo -e "[\033[1;32mUPLOAD\033[0m] Task information:"
echo -e "————————– [\033[1;33mINFO\033[0m] ————————–"
echo -e "\033[1;35mDownload path:\033[0m${downloadpath}"
echo -e "\033[1;35mFile path: \033[0m${filepath}"
echo -e "\033[1;35mUpload path: \033[0m${uploadpath}"
echo -e "\033[1;35mRemote path:\033[0m${remotepath}"
echo -e "————————– [\033[1;33mINFO\033[0m] ————————–"
echo
}

Upload(){
retry=0
while [ $retry -le $retry_num -a -e "${uploadpath}" ]; do
[ $retry != 0 ] && echo && echo -e "Upload failed! Retry ${retry}/${retry_num} …" && echo
rclone move -v "${uploadpath}" "${remotepath}"
rclone rmdirs -v "${downloadpath}" –leave-root
retry=$(($retry+1))
done
[ -e "${uploadpath}" ] && echo && echo -e "Upload failed: ${uploadpath}" && echo
[ -e "${path}".aria2 ] && rm -vf "${path}".aria2
[ -e "${filepath}".aria2 ] && rm -vf "${filepath}".aria2
}

if [ $2 -eq 0 ]
then
exit 0
fi

echo && echo -e " \033[1;33mU P L O A D ! ! !\033[0m" && echo
echo && echo -e " \033[1;32mU P L O A D ! ! !\033[0m" && echo
echo && echo -e " \033[1;35mU P L O A D ! ! !\033[0m" && echo

if [ "$path" = "$filepath" ] && [ $2 -eq 1 ] #普通单文件下载,移动文件到设定的网盘文件夹。
then
uploadpath=${filepath}
remotepath="${name}:${folder}"
Task_INFO
Upload
exit 0
elif [ "$path" != "$filepath" ] && [ $2 -gt 1 ] #BT下载(文件夹内文件数大于1),移动整个文件夹到设定的网盘文件夹。
then
uploadpath=${path}
remotepath="${name}:${folder}/${rdp%%/*}"
Task_INFO
Upload
exit 0
elif [ "$path" != "$filepath" ] && [ $2 -eq 1 ] #第三方度盘工具下载(子文件夹或多级目录等情况下的单文件下载)、BT下载(文件夹内文件数等于1),移动文件到设定的网盘文件夹下的相同路径文件夹。
then
uploadpath=${filepath}
remotepath="${name}:${folder}/${rdp%/*}"
Task_INFO
Upload
exit 0
fi
Task_INFO

赋予脚本权限

1
chmod +x autoupload.sh

修改 aria2 配置

编辑 /root/.aria2c
修改如下内容

1
2
# 调用 rclone 上传(move)到网盘
on-download-complete=/root/.aria2c/autoupload.sh

重启 aria2

1
/etc/init.d/aria2 restart