高效利用低配VPS之 Aria2+Onedrive 自动化
Sualiu
撰写于 2023年 05月 11 日

目标

我们的目标是实现这样几个功能:

  • 可视化界面管理VPS系统文件
  • Aria2下载工具,实现多种类型的文件下载
  • 自动化上传下载文件至 onedrive,高效利用 VPS 磁盘空间

安装Aria2+Apache2+File Browser

看着标题了嘛,这里直接使用一键脚本……

这是开源地址:

Masterchiefm/Aria2Dash
216 更新于2024-01-21 13:01:33

更加详细的使用方法,项目界面都有介绍,这里不再啰嗦。

注意点,这个脚本有时候安不上 File Browser。而Apache2 是从系统默认源安装的,一般不会出现问题。Aria2 也是,Aria2 配置文件用的P3TERX大神的开源项目

P3TERX/aria2.conf
3180 更新于2024-02-28 12:02:16

接下来说一下手动安装 File Browser 。

前往 File Browser 官网:https://filebrowser.org/ ,找到 Installation 页面,依照介绍安装。Linux系统就选择 Unix ,通用。

这里得介绍一下启动命令 filebrowser -r / -a 0.0.0.0,-r 指File Browser的根目录是什么,-r / 的意思是File Browser的根目录就是Linux系统的根目录;-a 指File Browser监听的IP地址,0.0.0.0 则指代监听全部IP。

执行命令后不后自动变成后台程序,断开命令行程序就停止。放入后台运行可以参考 screen 命令。

安装OneDriveUploader

使用MoeClub大佬的开源项目:

MoeClub/OneList
1086 更新于2020-04-20 00:04:40

建议使用 GoLang 版本,不使用Python版。

下文只介绍安装部分,具体的使用方法请访问开源项目地址。

下载OneDriveUploader

SSH终端输入以下命令,依照当前系统环境选择

#64位系统下载
wget https://raw.githubusercontent.com/MoeClub/OneList/master/OneDriveUploader/amd64/linux/OneDriveUploader -P /usr/local/bin/
#32位系统下载
wget https://raw.githubusercontent.com/MoeClub/OneList/master/OneDriveUploader/i386/linux/OneDriveUploader -P /usr/local/bin/
#arm架构下载
wget https://raw.githubusercontent.com/MoeClub/OneList/master/OneDriveUploader/arm/linux/OneDriveUploader -P /usr/local/bin/

执行命令后,程序就下载到了 /usr/local/bin/ 目录。此目录用于存放用户的可执行程序,此处存放的程序在使用过程中无需添加路径,可直接使用程序名称。

给予刚刚下载的文件读写权限:chmod +x /usr/local/bin/OneDriveUploader

获取OneDrive授权token

浏览器打开

国际版, 个人版(家庭版)
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=78d4dc35-7e46-42c6-9023-2d39314433a5&response_type=code&redirect_uri=http://localhost/onedrive-login&response_mode=query&scope=offline_access%20User.Read%20Files.ReadWrite.All
中国版(世纪互联)
https://login.chinacloudapi.cn/common/oauth2/v2.0/authorize?client_id=dfe36e60-6133-48cf-869f-4d15b8354769&response_type=code&redirect_uri=http://localhost/OneDrive-login&response_mode=query&scope=offline_access%20User.Read%20Files.ReadWrite.All

复制浏览器上方链接备用http://localhost/onedrive-login?code=M.R2_BAY.41e8a024-****-d626-****-d2******27ae

配置OneDriveUploader

命令行运行,url为上步获取的链接

# 国际版
OneDriveUploader -a "url"
# 个人版(家庭版)
OneDriveUploader -ms -a "url"
# 中国版(世纪互联)
OneDriveUploader -cn -a "url"

显示Init config file: /root/auth.json.表示配置成功。

测试

运行OneDriveUploader -c /root/auth.json -s "测试文件路径" -r "onedrive路径"将测试文件上传至OneDrive。

如果在OneDrive文件夹中已经可以看到文件,则代表成功。

其它信息

其它更详细的介绍还可以看看这篇文章:
https://cnboy.org/486

自动运行脚本

aira2 可以在下载结束后运行一个脚本,所以可以在root目录新建一个脚本:

vi rcloneupload.sh

复制以下内容,根据需要进行更改,wq保存并退出。

#!/bin/bash
GID="$1";
FileNum="$2";
File="$3";
MaxSize="15728640";
Thread="3";    # 默认3线程,自行修改,服务器配置不好的话,不建议太多
Block="20";    # 默认分块20m,自行修改
RemoteDIR="share";  # 上传到Onedrive的路径,默认为根目录,如果要上传到File目录,""里面请填成File
LocalDIR="/DownLoad";       # Aria2下载目录,记得最后面加上/
Uploader="/usr/local/bin/OneDriveUploader";  # 上传的程序完整路径,默认为本文安装的目录
Config="/root/auth.json";  # 初始化生成的配置auth.json绝对路径,参考第3步骤生成的路径
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(){
  if [[ ! -e "${Uploader}" ]]; then return; fi
  IFS_BAK=$IFS
  IFS=$'\n'
  tmpFile="$(echo "${File/#$LocalDIR}" |cut -f1 -d'/')"
  FileLoad="${LocalDIR}${tmpFile}"
  if [[ ! -e "${FileLoad}" ]]; then return; fi
  ItemSize=$(du -s "${FileLoad}" |cut -f1 |grep -o '[0-9]*' |head -n1)
  if [[ -z "$ItemSize" ]]; then return; fi
  if [[ "$ItemSize" -ge "$MaxSize" ]]; then
    echo -ne "\033[33m${FileLoad} \033[0mtoo large to spik.\n";
    return;
  fi
  ${Uploader} -c "${Config}" -t "${Thread}" -b "${Block}" -s "${FileLoad}" -r "${RemoteDIR}" -skip
  if [[ $? == '0' ]]; then
    rm -rf "${FileLoad}";
  fi
  IFS=$IFS_BAK
}
LoadFile;

更改权限: chmod +x rcloneupload.sh

注意:上面的Aria2配置文件中没有包含自动脚本这一项,需要手动在配置文件中加上这一行:

# 启用下载脚本
on-download-complete=/root/rcloneupload.sh

按照上述脚本安装的Aria2配置文件路径是 /root/.aria2/aria2.conf

这个脚本在上传完文件后会自动删除本地文件。

其它

Aria2 重启、关闭、开启

Aria2关闭,重启,开启命令

# 重启
systemctl restart aria2.service
# 开启
systemctl start aria2.service
# 关闭
systemctl stop aria2.service

另外,也可以用一键脚本自带的控制命令,命令行输入 aria2dash 即可看到。使用此命令需要安装Python3


更新 BT-Tracker

更新 BT-Tracker,在 Aria2 配置文件(aria2.conf)所在目录执行即可获取最新 tracker 列表并添加到配置文件中。其余参考开源aria2.conf项目。

wget git.io/tracker.sh

bash tracker.sh

systemctl restart aria2.service

也可以使用自带的一个脚本,也是在配置文件目录执行:
bash updatetracker.sh


Aria2下载没有速度?

Aria2等下载磁力没有速度的话,可以试试更新一下 BitTorrent tracker,开启DHT功能,还可以先下载一些热门磁力链接:Ubuntu BitTorrent


查看Linux实时网速

如果要查看 Linux 当前实时网速,可以执行此命令:
watch -n 1 ifconfig

参考

Euserv免费VPS实现离线下载至OneDrive最终使用版 | 笔 札
Aria2下载磁力链和种子速度慢或无速度的解决办法 - 柴郡猫-cheshirex

无处安放的壁纸

无处安放的壁纸

高效利用低配VPS之 Aria2+Onedrive 自动化

目标

我们的目标是实现这样几个功能:

  • 可视化界面管理VPS系统文件
  • Aria2下载工具,实现多种类型的文件下载
  • 自动化上传下载文件至 onedrive,高效利用 VPS 磁盘空间

安装Aria2+Apache2+File Browser

看着标题了嘛,这里直接使用一键脚本……

这是开源地址:

Masterchiefm/Aria2Dash
216 更新于2024-01-21 13:01:33

更加详细的使用方法,项目界面都有介绍,这里不再啰嗦。

注意点,这个脚本有时候安不上 File Browser。而Apache2 是从系统默认源安装的,一般不会出现问题。Aria2 也是,Aria2 配置文件用的P3TERX大神的开源项目

P3TERX/aria2.conf
3180 更新于2024-02-28 12:02:16

接下来说一下手动安装 File Browser 。

前往 File Browser 官网:https://filebrowser.org/ ,找到 Installation 页面,依照介绍安装。Linux系统就选择 Unix ,通用。

这里得介绍一下启动命令 filebrowser -r / -a 0.0.0.0,-r 指File Browser的根目录是什么,-r / 的意思是File Browser的根目录就是Linux系统的根目录;-a 指File Browser监听的IP地址,0.0.0.0 则指代监听全部IP。

执行命令后不后自动变成后台程序,断开命令行程序就停止。放入后台运行可以参考 screen 命令。

安装OneDriveUploader

使用MoeClub大佬的开源项目:

MoeClub/OneList
1086 更新于2020-04-20 00:04:40

建议使用 GoLang 版本,不使用Python版。

下文只介绍安装部分,具体的使用方法请访问开源项目地址。

下载OneDriveUploader

SSH终端输入以下命令,依照当前系统环境选择

#64位系统下载
wget https://raw.githubusercontent.com/MoeClub/OneList/master/OneDriveUploader/amd64/linux/OneDriveUploader -P /usr/local/bin/
#32位系统下载
wget https://raw.githubusercontent.com/MoeClub/OneList/master/OneDriveUploader/i386/linux/OneDriveUploader -P /usr/local/bin/
#arm架构下载
wget https://raw.githubusercontent.com/MoeClub/OneList/master/OneDriveUploader/arm/linux/OneDriveUploader -P /usr/local/bin/

执行命令后,程序就下载到了 /usr/local/bin/ 目录。此目录用于存放用户的可执行程序,此处存放的程序在使用过程中无需添加路径,可直接使用程序名称。

给予刚刚下载的文件读写权限:chmod +x /usr/local/bin/OneDriveUploader

获取OneDrive授权token

浏览器打开

国际版, 个人版(家庭版)
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=78d4dc35-7e46-42c6-9023-2d39314433a5&response_type=code&redirect_uri=http://localhost/onedrive-login&response_mode=query&scope=offline_access%20User.Read%20Files.ReadWrite.All
中国版(世纪互联)
https://login.chinacloudapi.cn/common/oauth2/v2.0/authorize?client_id=dfe36e60-6133-48cf-869f-4d15b8354769&response_type=code&redirect_uri=http://localhost/OneDrive-login&response_mode=query&scope=offline_access%20User.Read%20Files.ReadWrite.All

复制浏览器上方链接备用http://localhost/onedrive-login?code=M.R2_BAY.41e8a024-****-d626-****-d2******27ae

配置OneDriveUploader

命令行运行,url为上步获取的链接

# 国际版
OneDriveUploader -a "url"
# 个人版(家庭版)
OneDriveUploader -ms -a "url"
# 中国版(世纪互联)
OneDriveUploader -cn -a "url"

显示Init config file: /root/auth.json.表示配置成功。

测试

运行OneDriveUploader -c /root/auth.json -s "测试文件路径" -r "onedrive路径"将测试文件上传至OneDrive。

如果在OneDrive文件夹中已经可以看到文件,则代表成功。

其它信息

其它更详细的介绍还可以看看这篇文章:
https://cnboy.org/486

自动运行脚本

aira2 可以在下载结束后运行一个脚本,所以可以在root目录新建一个脚本:

vi rcloneupload.sh

复制以下内容,根据需要进行更改,wq保存并退出。

#!/bin/bash
GID="$1";
FileNum="$2";
File="$3";
MaxSize="15728640";
Thread="3";    # 默认3线程,自行修改,服务器配置不好的话,不建议太多
Block="20";    # 默认分块20m,自行修改
RemoteDIR="share";  # 上传到Onedrive的路径,默认为根目录,如果要上传到File目录,""里面请填成File
LocalDIR="/DownLoad";       # Aria2下载目录,记得最后面加上/
Uploader="/usr/local/bin/OneDriveUploader";  # 上传的程序完整路径,默认为本文安装的目录
Config="/root/auth.json";  # 初始化生成的配置auth.json绝对路径,参考第3步骤生成的路径
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(){
  if [[ ! -e "${Uploader}" ]]; then return; fi
  IFS_BAK=$IFS
  IFS=$'\n'
  tmpFile="$(echo "${File/#$LocalDIR}" |cut -f1 -d'/')"
  FileLoad="${LocalDIR}${tmpFile}"
  if [[ ! -e "${FileLoad}" ]]; then return; fi
  ItemSize=$(du -s "${FileLoad}" |cut -f1 |grep -o '[0-9]*' |head -n1)
  if [[ -z "$ItemSize" ]]; then return; fi
  if [[ "$ItemSize" -ge "$MaxSize" ]]; then
    echo -ne "\033[33m${FileLoad} \033[0mtoo large to spik.\n";
    return;
  fi
  ${Uploader} -c "${Config}" -t "${Thread}" -b "${Block}" -s "${FileLoad}" -r "${RemoteDIR}" -skip
  if [[ $? == '0' ]]; then
    rm -rf "${FileLoad}";
  fi
  IFS=$IFS_BAK
}
LoadFile;

更改权限: chmod +x rcloneupload.sh

注意:上面的Aria2配置文件中没有包含自动脚本这一项,需要手动在配置文件中加上这一行:

# 启用下载脚本
on-download-complete=/root/rcloneupload.sh

按照上述脚本安装的Aria2配置文件路径是 /root/.aria2/aria2.conf

这个脚本在上传完文件后会自动删除本地文件。

其它

Aria2 重启、关闭、开启

Aria2关闭,重启,开启命令

# 重启
systemctl restart aria2.service
# 开启
systemctl start aria2.service
# 关闭
systemctl stop aria2.service

另外,也可以用一键脚本自带的控制命令,命令行输入 aria2dash 即可看到。使用此命令需要安装Python3


更新 BT-Tracker

更新 BT-Tracker,在 Aria2 配置文件(aria2.conf)所在目录执行即可获取最新 tracker 列表并添加到配置文件中。其余参考开源aria2.conf项目。

wget git.io/tracker.sh

bash tracker.sh

systemctl restart aria2.service

也可以使用自带的一个脚本,也是在配置文件目录执行:
bash updatetracker.sh


Aria2下载没有速度?

Aria2等下载磁力没有速度的话,可以试试更新一下 BitTorrent tracker,开启DHT功能,还可以先下载一些热门磁力链接:Ubuntu BitTorrent


查看Linux实时网速

如果要查看 Linux 当前实时网速,可以执行此命令:
watch -n 1 ifconfig

参考

Euserv免费VPS实现离线下载至OneDrive最终使用版 | 笔 札
Aria2下载磁力链和种子速度慢或无速度的解决办法 - 柴郡猫-cheshirex

无处安放的壁纸

无处安放的壁纸


赞 (5)

评论区(4条评论)

我要评论


加菲猫
LV1
  

加菲猫加菲猫加菲猫

回复 0
加菲猫
LV1
  

加菲猫加菲猫

回复 1
gg
LV2
  

你是一只熊

回复 0
哈哈哈哈
LV1
  

你好我是加菲猫

回复 0