人生就是由众多的细节组成的
正因为是个细节,所以常被人所淡忘

使用Rclone挂载OneDrive 离线下载神器Aria2

Accessing your RONIN object storage with Rclone

安装宝塔

更新软件包

apt update

安装基础组件

apt install sudo wget curl

下载宝塔面板

wget -O install.sh http://www.aapanel.com/script/install-ubuntu_6.0_en.sh && bash install.sh

中文版本输入下面的代码解除登陆限制

sed -i "s|if (bind_user == 'True') {|if (bind_user == 'REMOVED') {|g" /www/server/panel/BTPanel/static/js/index.js

rm -rf /www/server/panel/data/bind.pl

安装LNMP

php可以选7.4

修改系统时间、添加SWAP

时间改成上海,swap添加一倍内存就行。

安装Aria2增强版

为了避免出错,安装下面的基础组件:

apt install sudo wget curl ca-certificates

运行安装脚本

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

启动Aria2

./aria2.sh

配置Aria2

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]:

配置信息:

Aria2 简单配置信息:

 IPv4 地址      : 119.28.139.167
 IPv6 地址      : IPv6 地址检测失败
 RPC 端口       : 6800
 RPC 密钥       : 43aa91a8314b404d513d
 下载目录       : /root/downloads
 AriaNg 链接    : http://ariang.js.org/#!/settings/rpc/set/ws/119.28.139.167/6800/jsonrpc/NDNhYTkxYT
gzMTRiNDA0ZDUxM2Q=

[信息] Aria2 启动成功 !

项目仓库: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

RPC 密钥:随机生成,可使用选项7. 修改 配置文件自定义

配置Rclone

以下分为三小步这里做个简介:

第一步是PC端获取网盘授权的令牌;

第二步是在VPS里绑定获得的授权;

第三步才是自动上传配置。

因为OneDrive的授权需要在浏览器打开,而VPS没有图形界面,只能先在PC端获取授权,所以第一步和第二步有点重复。
窗口(PC)端安装Rclone

下载解压将里面的rclone.exe移动到本地C:\Windows\System32下这个目录,其它的可以删掉没关系
按win + R快捷键打开运行,输入cmd确定来打开CMD窗口,输入rclone config
命令开始配置 。

VPS安装Rclone

curl https://rclone.org/install.sh | sudo bash  #安装Rclone
rclone config  #配置Rclone

提示:
以上两步就是为了得到token,并在VPS里创建一个rclone.conf配置文件,该配置文件目录在root/.config/rclone/rclone.conf,可以将这个文件下载到本地,以后如果重装只要在VPS上安装好rclone,再将这个配置文件放进这个目录即可,省去繁琐配置过程。

自动上传设置
因为挂载了其实最终的目的还是转移到自己的云盘空间中,vps 的硬盘能有多大,要折腾都是在云盘中。如果你是土豪当我没说。

这篇手记是解决后续利用 rclone 自动上传 aria2 下载的文件到 onedrive 或者 googledrive。到 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='/usr/local/caddy/www/file' #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

需要修改的地方只有这三行:

downloadpath='/usr/local/caddy/www/file' #Aria2下载目录
name='remote' #配置Rclone时填写的name
folder='/backup' #网盘里的文件夹,留空为整个网盘。

/usr/local/caddy/www/file 这个对应你aria2的下载目录(比如用我们的的增强脚本就是/root/downloads),remote 对应你配置rclone的时候设置的名称,/backup 对应你想同步上传到你网盘的哪个目录,如果留空就是根目录(如果没有这个目录,会自动创建)。
修改完毕后,给这个脚本执行权限:

chmod +x autoupload.sh

然后编辑aria2的配置文件(位置在/root/.aria2c),
找到on-download-complete,修改内容为这句:

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

这就是利用rclone的on-download-complete自动上传aria2下载好的文件。

重新启动aria2:

/etc/init.d/aria2 restart

重启Aria2使配置文件生效,这样就大功告成了。

挂载OD

把 One Drive 网盘挂载到云主机/Vps 上和设置开机自启,自动挂载 One Drive 网盘

安装fuse

apt-get install fuse3 #debian

yum install fuse3 #centos

新建一个你要挂载的目录,例如我要挂载到 /home/onedrive

mkdir -p /home/onedrive

再执行挂载命令:

rclone mount od: /home/onedrive --allow-other --allow-non-empty --vfs-cache-mode writes

还可以自定义设置网盘里的文件夹路径,例如:

rclone mount od:backup /home/onedrive --allow-other --allow-non-empty --vfs-cache-mode writes

od:backup中od 为Rclone的配置名称,backup 为网盘里的目录名(注意后面的空格别漏了)

卸载 One Drive 磁盘

fusermount -qzu /home/onedrive

挂载只要几秒钟,但终端不会返回成功信息,关闭 SSH 重连即可。

重连后查看是否挂载成功:

df -h

开机自动挂载

创建 rclone-onedrive.service

nano /etc/systemd/system/rclone-onedrive.service

黏贴内容

[Unit]
Description=Rclone Mount for OneDrive (od)
After=network-online.target

[Service]
Type=simple
User=root
ExecStart=/usr/bin/rclone mount od: /home/onedrive \
--config=/root/.config/rclone/rclone.conf \
--allow-other \
--vfs-cache-mode=writes

ExecStop=/bin/fusermount -u /home/onedrive
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

重载+启动

systemctl daemon-reload #重载 daemon,让新的服务文件生效
systemctl enable rclone-onedrive
systemctl restart rclone-onedrive

然后查看状态:

systemctl status rclone-onedrive

其他

其他问题可以参考 Rclone 帮助文档 :https://rclone.org/googlecloudstorage/

赞(0) 打赏
未经允许不得转载:毛桃博客 » 使用Rclone挂载OneDrive

评论 抢沙发

评论前必须登录!

 

实践是学习的最佳途径

支持快讯、专题、百度收录推送、人机验证、多级分类筛选器,适用于垂直站点、科技博客、个人站,扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、文章图片弹窗、自动缩略图等...

了解更多看平潭

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册