AI智能摘要
The article outlines steps to install and configure Aria2, a download manager, and Rclone for cloud storage on Linux systems (Ubuntu/Debian/CentOS). It provides commands for updating packages, installing dependencies, and executing the Aria2 installation script from a GitHub repository. Configuration details for Aria2 include default download directories and management commands. It also covers Rclone installation, configuration, and mounting a WebDAV service to a local folder. A script is shared to automate uploading Aria2 downloads to the configured cloud storage using Rclone. The script handles different download scenarios and allows customization of retry attempts and remote upload paths. Finally, it describes modifying the Aria2 configuration to trigger the upload script and restarting Aria2.
— 此摘要由AI分析文章内容生成,仅供参考。
更新软件包
##ubuntu&debian
apt update & apt upgrade
##centos
yum update -y
安装基础组件
##ubuntu&debian
apt install sudo wget curl
##centos
yum install sudo wget curl
安装 Aria 2 增强版
安装必要基础组件
apt install sudo wget curl ca-certificates
下载安装脚本
wget -N git.io/aria2.sh && chmod +x aria2.sh
运行安装脚本
./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
curl https://rclone.org/install.sh | sudo bash
配置 rclone
rclone config
Rclone 挂载 webdav
以本地挂载 alist
为例,按图配置即可
![图片[1]-aria2离线下载,rclone配置挂载-四次元拾光](https://yuika.cn/wp-content/uploads/post-images/2320-3.jpg)
![图片[2]-aria2离线下载,rclone配置挂载-四次元拾光](https://yuika.cn/wp-content/uploads/post-images/2320-4.jpg)
创建挂载位置
mkdir -p /mnt/rclone/alist
将 webdav 挂载为本地目录
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
是创建挂载位置时的文件夹名称
卸载磁盘
fusermount -qzu LocalFolder
自动上传设置
创建脚本
到 aria2
目录运行
vi autoupload.sh
脚本如下 (作者:P3TERX,Github):
#!/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 "[ 33[1;32mUPLOAD 33[0m] Task information:"
echo -e "————————– [ 33[1;33mINFO 33[0m] ————————–"
echo -e " 33[1;35mDownload path: 33[0m${downloadpath}"
echo -e " 33[1;35mFile path: 33[0m${filepath}"
echo -e " 33[1;35mUpload path: 33[0m${uploadpath}"
echo -e " 33[1;35mRemote path: 33[0m${remotepath}"
echo -e "————————– [ 33[1;33mINFO 33[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 " 33[1;33mU P L O A D ! ! ! 33[0m" && echo
echo && echo -e " 33[1;32mU P L O A D ! ! ! 33[0m" && echo
echo && echo -e " 33[1;35mU P L O A D ! ! ! 33[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
#### 赋予脚本权限
```bash
chmod +x autoupload.sh
修改 aria2 配置
编辑 /root/.aria2c
修改如下内容
# 调用 rclone 上传(move)到网盘
on-download-complete=/root/.aria2c/autoupload.sh
重启 aria2
/etc/init.d/aria2 restart
© 版权声明
THE END
暂无评论内容