Linux下安装rclone同步文件

数字玩具 2022年01月26日 22:52

云服务器有点多,东西也是各放各的。这对于我来说是绝对难以忍受的事情。蛮久之前就用过 rclone 进行 Google Drive 的同步,感觉还不错,但是在自己电脑上一直开着有时候总是风扇一直转? (好像之前是这样的)。但是嘛~现在要是服务器的话就无所谓咯,反正自己看不见摸不着 haha。自己使用 Onedrive 备份文件数据的时间已经有 6 到 7 年了。越来越离不开巨硬 悲。

需要的准备

一个 VPS 或者其他什么支持 rclone 的东西就行OneDrive 账户 (当然,要大,不是因为服务器空间寸土寸金你为什么要用嘞)
OneDrive空间

开始行动咯

安装 rclone

我的服务器是 Debian/Ubuntu 所以使用 apt,如果是 CentOS 大概是 yum:

1
2
sudo apt update
sudo apt install rclone fuse

Copy

发现用源安装可能会版本变老 所以不推荐 | 2022-02-28

推荐使用官方脚本安装

curl https://rclone.org/install.sh | sudo bash

配置 rclone

本机 rclone 配置

在执行完服务器端的命令后,在 Win 上,或者一台什么可以打开浏览器 UI 的玩意儿同时下载 rclone win 上不需要讲怎么下载软件叭? rclone 官网

在本地主机执行:

1
rclone authorize "onedrive"

Copy

如果执行命令失败大概是因为没有配置环境变量,自行查找教程添加,或者直接去 rclone 安装根目录执行?

在打开的浏览器中登录自己要同步的 Onedrive 账户,在显示登录成功后,在终端中会显示一段 JSON,复制 Paste the following into your remote machine —> 和 <—End paste 中间的那一串 JSON。

服务器端 rclone 配置

服务器执行

1
sudo rclone config

Copy

添加 rclone 的配置

新建rclone配置

大概是小学英语的水准?

选 n 添加一个配置,然后在 name 处添加配置文件的命名。

选择微软全局

选择自己要配置的云盘,我是 Onedrive 所以选择 27

在连点两次回车这里全部选择空选项之后选 1,Microsoft Cloud Global

选择不进入高级设置

然后选择 n 不进入高级选项设置,在 token 处粘贴自己之前复制的 JSON 数据。

选择businss

这里选择因为我是 E5 订阅(用好多年了,赞美巨硬!😆),所以选择 1。 之后提示为:rclone 找到一个 onedrive 云盘,是否确定,选择 y 结束。

运行测试

在服务器上运行

1
rclone mount thy_disk:/Data/Linux/VPS/Backups/TencentCloud /opt/onedrive_thy --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000 --vfs-cache-mode writes

Copy

注意,在 thy_disk 处修改为在 rclone 中配置的挂载配置名,在 */Data/Linux/VPS/Backups/TencentCloud 处填写 Onedrive 中要保存文件的路径,/opt/onedrive_thy* 为服务器上同步的文件位置。 因为我的服务器显示 **–vfs-cache-mode writes or full is recommended for this remote as it can’t stream**,所以我需要加上 –vfs-cache-mode writes 进行缓存设置。

在稍作等待后,打开另一个 ssh 窗口 执行:

1
df -h

Copy

查询是否挂载成功

可以看到 onedrive 的挂载点 说明执行成功。

文件测试

在 onedrive 中随便 mkdir 或者 touch 几个新文件试试叭。 然后在网页端或者 win 上的 onedrive 中查看,会发现文件已经同步完成。

因为 rclone 好像有点 bug?在 Ctrl+C 后不会自动关闭只能最后执行:

1
fusermount -qzu /opt/onedrive_thy

Copy

关闭连接。

注意,/opt/onedrive_thy 替换成自己的服务器端地址。

配置后台守护进程

我是 Debian 所以执行:

1
sudo nano /etc/systemd/system/rclone.service

Copy

粘贴这些东西:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
[Unit]
Description = rclone
Requires=network.target

[Service]
User = root
KillMode= none
ExecStart = /usr/bin/rclone mount thy_disk:/Data/Linux/VPS/Backups/TencentCloud /opt/onedrive_thy --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000 --vfs-cache-mode writes
Restart = on-abort
ExecStop=/usr/bin/fusermount -qzu /opt/onedrive_thy

[Install]
WantedBy = multi-user.target

Copy

注意替换相关配置。

在检查无误后执行:

1
2
3
sudo systemctl daemon-reload
sudo systemctl enable rclone
sudo systemctl restart rclone

Copy

添加并开启配置

如果想要查看 rclone 运行状态,可以执行:

1
sudo systemctl status rclone

Copy

守护进程状态

如果显示为 绿色,说明服务正常运行。

相关问题

编辑日期 - 2022-02-01

Q:发现程序运行失败,停止守护进程后发现是 token 失效

发现token失效

A:想起前几天在 Office 后台开启全部的双重验证,所有登录 Office 的设备都需要重新验证。改一下配置文件重新配置 Token 就好。

标签

吕楪

博主.本博客的所有者,一切的开始。