返回
Featured image of post Linux下安装rclone同步文件

Linux下安装rclone同步文件

使用onedrive

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

需要的准备

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

开始行动咯

安装rclone

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

1
2
sudo apt update
sudo apt install rclone fuse

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

推荐使用官方脚本安装

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

配置rclone

本机rclone配置

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

在本地主机执行:

1
rclone authorize "onedrive"

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

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

服务器端rclone配置

服务器执行

1
sudo rclone config

添加rclone的配置

大概是小学英语的水准?

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

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

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

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

这里选择因为我是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

注意,在 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

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

文件测试

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

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

1
fusermount -qzu /opt/onedrive_thy

关闭连接。

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

配置后台守护进程

我是Debian 所以执行:

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

粘贴这些东西:

 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

注意替换相关配置。

在检查无误后执行:

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

添加并开启配置

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

1
sudo systemctl status rclone

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

相关问题

编辑日期 - 2022-02-01

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

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

Licensed under CC BY-NC-SA 4.0
最后更新于 02-18, 2022 16:59
共书写了23.4k字·共 21篇文章
Built with Hugo
Theme Stack designed by Jimmy