CENTOS服务器使用rclone开机自动挂载微软onedrive onedrive挂载为服务器磁盘方法
最近经常听说有人撸到无限容量的谷歌网络硬盘,或者是5T容量的,都是利用学生认证实现的,现在淘宝上也有一大堆,但是感觉这种都不一定稳,随时可能翻车,我自己是用的google drive个人版的免费15G空间,其实也够用了,可以挂载到服务器上,当一个普通的本地磁盘样操作,多15G随便放点什么都好,还稳定,不怕翻车,挂载主要通过RCLONE这个软件实现,需要服务器或者至少KVM架构的VPS,因为需要用到FUSE,而一般OPENVZ架构是不开启这个功能的,教程如下:
本教程基于CENTOS系统
安装EPEL源(这一步国外VPS一般可不用操作):
yum -y install epel-release
安装一些基本组件和依赖:
yum -y install wget unzip screen fuse fuse-devel
下载Rclone解压然后进入目录:(64位系统就下载rclone-current-linux-amd64.zip,32位系统就下载rclone-current-linux-386.zip替换下面代码中的链接就行了)
wget https://downloads.rclone.org/rclone-current-linux-amd64.zip unzip rclone-current-linux-amd64.zip cd rclone-v*
注意cd rclone-v*这一步如果系统执行出错,你可以输入ls命令查看一下具体目录名,因为这个是使用最新版本,版本号不一定一样,然后根据真实的目录cd 进去一下
接下来运行Rclone开始配置:
./rclone config
第一步选择n,然后回车输入一个name,建议这个name设置的简单好记一点,比如我们这边叫onedrive这个下面会用到如图所示:
第二步选择挂载类型,这里选择17 onedrive,切记要选对了,注意看看是不是One Drive 可能rclone版本不一样,选项数字不一定一样:
接着client_id、client_secret都留空直接回车,Edit advanced config、Use auto config这里我们选择n,Account Type根据你的OneDrive类型选择个人版还是商业版,我们这里用的是E3版属于商业版,因此选择b,Use auto config这里我们选择n,如图所示:
然后获取授权的TOKEN,
Onedrive 的配置需要在一台有浏览器的电脑上进行授权,下载 PC 版本的 rclone(我用的 64 位):
下载 PC 版本的 rclone(我用的 64 位):
64 位:https://downloads.rclone.org/v1.49.5/rclone-v1.49.5-windows-amd64.zip
32 位:https://downloads.rclone.org/v1.49.5/rclone-v1.49.5-windows-386.zip
解压放在 C 盘根目录,改名为 rclone
切换目录到 C: clone,执行设置,注意选择自动配置 Y
cd c: cd rclone rclone config
配置方法参考上面,但是USE AUTOCONFIG要选Y
登陆接受然后,提示SUCCESS后返回CMD命令框继续按上面的方法输入,然后就会出现一串的字符串
右键标记全部的 access token,按 CTRL + C 进行复制.(就是 {“access_token”: … }, 两个花括号及中间的部分. )粘贴到记事本中,整理好去除换行和空格(这步一定要的).回到服务器粘贴刚刚复制的 access token.
输入Y确认配置正确
然后就配置完成了,输入q退出配置
接下来设置挂载到服务器
全部完成后,现在新建一个你要挂载的目录:
mkdir -p /onedrive
用screen创建一个新的会话:
screen -S rclone
执行如下命令:
./rclone mount onedrive:backup /onedrive --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000
解释下上面的参数:
onedrive:backup这个就是前面我们命名的name,backup是我们在onedrive上的文件夹名称,也可以写/设置为放文件在根目录,/onedrive这个是映射成的本地硬盘盘符,在前面步骤mkdir创建的,执行这个命令不会输出任何内容,会有个卡住的假象,只要直接关掉SSH客户端,重新进系统就行了,不出意外的话,就挂载成功了:
输入df-h查看
挂载完成,但是重启VPS系统,不会自动启动挂载,每次进系统都要执行一遍
screen -S rclone
./rclone-v1.48-linux-amd64/rclone mount onedrive:backup /onedrive --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000
这样有点麻烦,因此还需要弄个自动启动,把自带的rclone服务写到开机启动项里面
先把rclone的可执行文件复制到/usr/bin:
cp /root/rclone-v*/rclone /usr/bin/rclone
新建一个rclone.service文件:
vi /usr/lib/systemd/system/rclone.service
写入:
[Unit] Description=rclone [Service] User=root ExecStart=/usr/bin/rclone mount onedrive:backup /onedrive --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000 Restart=on-abort [Install] WantedBy=multi-user.target
重载daemon,让新的服务文件生效:
systemctl daemon-reload
现在就可以用systemctl来启动rclone了:
systemctl start rclone
设置开机启动:
systemctl enable rclone
停止、查看状态可以用:
systemctl stop rclone systemctl status rclone
重启你的VPS,然后查看一下rclone的服务起来没,接着查看一下盘子挂上去没:
reboot systemctl status rclone df -h
要注意挂载在你VPS上的微软onedrive网络硬盘,你往里面存数据是要双向流量,也就是你先传到你的VPS,你的VPS再传到G DRIVE,所以流量是一进一出双向,如果你的服务器流量有限,而且是双向计算,那就要小心了