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

555555555555555555555.png
运行脚本后在菜单中输入选项 1,等待安装结束,记录下 RPC 地址 与 RPC 密钥 。
6666666666666.png
如果需要停止/重启服务,或是配置aria2,可以进入到脚本的储存目录使用指令

./aria2.sh

按照菜单提示进行相关操作。为了避免后续操作麻烦,一般情况下不建议再对配置信息进行修改啦(特别是端口)。

2.安装AriaNG

下载 AriaNG 程序包,在本地解压。
在宝塔面板上新建一个网站,再将程序包内的文件上传至网页根目录。如果设置了防火墙,要在宝塔及服务器开放6800端口。
打开网页,应该就正常进入到AriaNG的管理页面了。
在侧边栏点击 AriaNg 设置,再在顶栏找到RPC,填入之前记录的RPC 地址 与 RPC 密钥 。等待 Aria2 状态 显示为 已连接。
7777777777777.png
至此就大功告成啦!点击新建,填入磁力链接/下载直链,体验飞一般的速度!!下载后的文件将会储存在你的服务器中。

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

1111111111111111111.png
检测信息显示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
 百度地图的交通状况组件TrafficControl支持https协议
解决js下载PDF流文件,下载成功后文件白屏问题 
上一篇:百度地图的交通状况组件TrafficControl支持https协议
下一篇:解决js下载PDF流文件,下载成功后文件白屏问题
评论

如果我的文章对你有帮助,或许可以打赏一下呀!

支付宝
微信
QQ