Aria2+AriaNG+Rclone+宝塔部署教程
宝塔我就不多说了,上官网下载安装就好!!!
1.安装Aria2
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/aria2.sh && chmod +x aria2.sh && bash aria2.sh
运行脚本后在菜单中输入选项 1,等待安装结束,记录下 RPC 地址 与 RPC 密钥 。
如果需要停止/重启服务,或是配置aria2,可以进入到脚本的储存目录使用指令
./aria2.sh
按照菜单提示进行相关操作。为了避免后续操作麻烦,一般情况下不建议再对配置信息进行修改啦(特别是端口)。
2.安装AriaNG
下载 AriaNG 程序包,在本地解压。
在宝塔面板上新建一个网站,再将程序包内的文件上传至网页根目录。如果设置了防火墙,要在宝塔及服务器开放6800端口。
打开网页,应该就正常进入到AriaNG的管理页面了。
在侧边栏点击 AriaNg 设置,再在顶栏找到RPC,填入之前记录的RPC 地址 与 RPC 密钥 。等待 Aria2 状态 显示为 已连接。
至此就大功告成啦!点击新建,填入磁力链接/下载直链,体验飞一般的速度!!下载后的文件将会储存在你的服务器中。
3.安装Rclone
curl https://rclone.org/install.sh | sudo bash
装好后配置rclone config
rclone config
yum -y install fuse
rclone mount rclone创建的name:远端创建的文件 本地目录 --allow-other --allow-non-empty --vfs-cache-mode writes &
如:rclone mount xxxxxx:aaaa /data/GoogleDrive --allow-other --allow-non-empty --vfs-cache-mode writes &
1 设置开机自启
wget https://dev.tencent.com/u/ilouis/p/static/git/raw/master/files/rcloned && nano rcloned
脚本内容如下:
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
NAME_BIN="rclone"
### BEGIN INIT INFO
# Provides: rclone
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start rclone at boot time
# Description: Enable rclone by daemon.
### END INIT INFO
NAME="" #rclone name名
REMOTE='' #远程文件夹
LOCAL='' #挂载地址
Green_font_prefix="\033[32m" && Red_font_prefix="\033[31m" && Green_background_prefix="\033[42;37m" && Red_background_prefix="\033[41;37m" && Font_color_suffix="\033[0m"
Info="${Green_font_prefix}[信息]${Font_color_suffix}"
Error="${Red_font_prefix}[错误]${Font_color_suffix}"
RETVAL=0
check_running(){
PID="$(ps -C $NAME_BIN -o pid= |head -n1 |grep -o '[0-9]\{1,\}')"
if [[ ! -z ${PID} ]]; then
return 0
else
return 1
fi
}
do_start(){
check_running
if [[ $? -eq 0 ]]; then
echo -e "${Info} $NAME_BIN (PID ${PID}) 正在运行..." && exit 0
else
fusermount -zuq $LOCAL >/dev/null 2>&1
mkdir -p $LOCAL
sudo /usr/bin/rclone mount $NAME:$REMOTE $LOCAL --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --vfs-cache-mode writes & >/dev/null 2>&1 &
sleep 2s
check_running
if [[ $? -eq 0 ]]; then
echo -e "${Info} $NAME_BIN 启动成功 !"
else
echo -e "${Error} $NAME_BIN 启动失败 !"
fi
fi
}
do_stop(){
check_running
if [[ $? -eq 0 ]]; then
kill -9 ${PID}
RETVAL=$?
if [[ $RETVAL -eq 0 ]]; then
echo -e "${Info} $NAME_BIN 停止成功 !"
else
echo -e "${Error} $NAME_BIN 停止失败 !"
fi
else
echo -e "${Info} $NAME_BIN 未运行"
RETVAL=1
fi
fusermount -zuq $LOCAL >/dev/null 2>&1
}
do_status(){
check_running
if [[ $? -eq 0 ]]; then
echo -e "${Info} $NAME_BIN (PID $(echo ${PID})) 正在运行..."
else
echo -e "${Info} $NAME_BIN 未运行 !"
RETVAL=1
fi
}
do_restart(){
do_stop
do_start
}
case "$1" in
start|stop|restart|status)
do_$1
;;
*)
echo "使用方法: $0 { start | stop | restart | status }"
RETVAL=1
;;
esac
exit $RETVAL
修改一下内容:
NAME="" #rclone name名,及配置时输入的Name
REMOTE='' #远程文件夹,OneDrive网盘里的挂载的一个文件夹
LOCAL='' #挂载地址,VPS本地挂载目录
2、设置自启
使用命令:
mv rcloned /etc/init.d/rcloned
chmod +x /etc/init.d/rcloned
update-rc.d -f rcloned defaults
bash /etc/init.d/rcloned status
检测信息显示rclone启动成功即可。
4.整合 Aria2 + Rclone
新建一个名为 rcloneupload.sh 的脚本。
nano /root/rcloneupload.sh
将以下内容复制进去
#!/bin/bash
GID="$1";
FileNum="$2";
File="$3";
MinSize="5" #限制最低上传大小,默认5k
MaxSize="157286400" #限制最高文件大小(单位k),默认15G
RemoteDIR="/data/GoogleDrive/"; #rclone挂载的本地文件夹,最后面保留/
LocalDIR="/data/Download/"; #Aria2下载目录,最后面保留/
if [[ -z $(echo "$FileNum" |grep -o '[0-9]*' |head -n1) ]]; then FileNum='0'; fi
if [[ "$FileNum" -le '0' ]]; then exit 0; fi
if [[ "$#" != '3' ]]; then exit 0; fi
function LoadFile(){
IFS_BAK=$IFS
IFS=$'\n'
if [[ ! -d "$LocalDIR" ]]; then return; fi
if [[ -e "$File" ]]; then
FileLoad="${File/#$LocalDIR}"
while true
do
if [[ "$FileLoad" == '/' ]]; then return; fi
echo "$FileLoad" |grep -q '/';
if [[ "$?" == "0" ]]; then
FileLoad=$(dirname "$FileLoad");
else
break;
fi;
done;
if [[ "$FileLoad" == "$LocalDIR" ]]; then return; fi
EXEC="$(command -v mv)"
if [[ -z "$EXEC" ]]; then return; fi
Option=" -f";
cd "$LocalDIR";
if [[ -e "$FileLoad" ]]; then
ItemSize=$(du -s "$FileLoad" |cut -f1 |grep -o '[0-9]*' |head -n1)
if [[ -z "$ItemSize" ]]; then return; fi
if [[ "$ItemSize" -le "$MinSize" ]]; then
echo -ne "\033[33m$FileLoad \033[0mtoo small to spik.\n";
return;
fi
if [[ "$ItemSize" -ge "$MaxSize" ]]; then
echo -ne "\033[33m$FileLoad \033[0mtoo large to spik.\n";
return;
fi
eval "${EXEC}${Option}" \'"${FileLoad}"\' "${RemoteDIR}";
if [[ $? == '0' ]]; then
rm -rf "$FileLoad";
fi
fi
fi
IFS=$IFS_BAK
}
LoadFile;
ps:注意修改目录
保存后给予执行权限
chmod +x /root/rcloneupload.sh
然后再到 Aria2 配置文件中加上一行 on-download-complete=/root/rcloneupload.sh
即可,后面为脚本的路径。重启 Aria2 生效。
nano /root/.aria2/aria2.conf
on-download-complete=/root/rcloneupload.sh
/etc/init.d/aria2 restart