Rclone 是一款的命令行工具,支持在不同对象存储、网盘间同步、上传、下载数据。 它能够将你的网盘挂载到服务器上,像使用本地硬盘一样使用网盘。 Rclone 支持很多品牌的网盘,具体列表如下
- 1Fichier
- Alibaba Cloud (Aliyun) Object Storage System (OSS)
- Amazon Drive (See note)
- Amazon S3
- Backblaze B2
- Box
- Ceph
- Citrix ShareFile
- C14
- DigitalOcean Spaces
- Dreamhost
- Dropbox
- Enterprise File Fabric
- FTP
- Google Cloud Storage
- Google Drive
- Google Photos
- HDFS
- HTTP
- Hubic
- Jottacloud
- IBM COS S3
- Koofr
- Mail.ru Cloud
- Memset Memstre
- Mega
- Memory
- Microsoft Azure Blob Storage
- Microsoft OneDrive
- Minio
- Nextcloud
- OVH
- OpnDrive
- OpenStack Swift
- Oracle Cloud Storage
- ownCloud
- pCloud
- premiumize.me
- put.io
- QingSor
- Rackspace Cloud Files
- rsync.net
- Scaleway
- Seafile
- SeaweedFS
- SFTP
- StackPath
- SugarSync
- Tardigrade
- Tencent Cloud Object Storage (COS)
- Uptobox
- Wasabi
- WebDAV
- Yandex Disk
- Zoho WorkDrive
- The local filesystem
操作命令
rclone命令的语法格式:
1 | Syntax: [options] subcommand <parameters> <parameters…> |
常用的rclone命令有:
- rclone config – 以控制会话的形式添加rclone的配置,配置保存在.rclone.conf文件中。
- rclone copy – 将文件从源复制到目的地址,跳过已复制完成的。
- rclone sync – 将源数据同步到目的地址,只更新目的地址的数据。
- rclone move – 将源数据移动到目的地址。
- rclone delete – 删除指定路径下的文件内容。
- rclone purge – 清空指定路径下所有文件数据。
- rclone mkdir – 创建一个新目录。
- rclone rmdir – 删除空目录。
- rclone check – 检查源和目的地址数据是否匹配。
- rclone ls – 列出指定路径下所有的文件以及文件大小和路径。
- rclone lsd – 列出指定路径下所有的目录/容器/桶。
- rclone lsl – 列出指定路径下所有文件以及修改时间、文件大小和路径。
- rclone md5sum – 为指定路径下的所有文件产生一个md5sum文件。
- rclone sha1sum – 为指定路径下的所有文件产生一个sha1sum文件。
- rclone size – 获取指定路径下,文件内容的总大小。.
- rclone version – 查看当前版本。
- rclone cleanup – 清空remote。
- rclone dedupe – 交互式查找重复文件,进行删除/重命名操作。
rclone config
开启一个交互式的配置会话。命令格式如下:
1 | rclone config |
rclone copy
将文件从源复制到目的地址,跳过已复制完成的。命令格式如下:
1 | rclone copy source:sourcepath dest:destpsth |
注:
1、rclone copy复制总是指定路径下的数据;而不是当前目录。
2、–no-traverse 标志用于控制是否列出目的地址目录。
rclone sync
1 | rclone sync source:path dest:path |
注:
1、同步数据时,可能会删除目的地址的数据;建议先使用–dry-run标志来检查要复制、删除的数据。
2、同步数据出错时,不会删除任何目的地址的数据。
3、rclone sync同步的始终是path目录下的数据,而不是path目录。(空目录将不会被同步)
rclone move
1 | rclone move source:path dest:path |
注:
1、同步数据时,可能会删除目的地址的数据;建议先使用–dry-run标志来检查要复制、删除的数据。
rclone purge
清空path目录和数据。命令格式如下:
1 | rclone purge remote:path |
注:
1、此命令,include/exclude 过滤器失效。
2、删除path目录下部分数据,请使用rclone delete 命令
rclone mkdir
创建path目录。命令格式如下:
1 | rclone mkdir remote:path |
rclone rmdir
删除一个空目录。命令格式如下:
1 | rclone rmdir remote:path |
注:
1、不能删除非空的目录,删除非空目录请使用 rclone purge。
rclone check
检查源和目标地址文件是否匹配。命令格式如下:
1 | rclone check source:path dest:path |
注:
1、–size-only标志用于指定,只比较大小,不比较MD5SUMs。
rclone ls
列出指定path下,所有的文件以及文件大小和路径。命令格式如下:
1 | rclone ls remote:path |
rclone lsd
列出指定path下,所有目录、容器、桶。命令格式如下:
1 | rclone lsd remote:path |
rclone delete
删除指定目录的内容。命令格式如下:
1 | rclone delete remote:path |
注:
1、不同于rclone purge,rclone delete 可使用 include/exclude 过滤器选择删除文件内容。
eg:
删除文件大小大于100M的文件
123456 | # 先检查哪些文件将被删除rclone –min-size 100M lsl remote:path # 使用rclone lsl 列出大于100M的文件rclone –dry-run –min-size 100M delete remote:path # 使用–dry-run 检查将要被删除的文件# 使用 rclone delete 进行文件删除rclone –min-size 100M delete remote:path |
rclone size
获取指定path下所有数据文件的总大小。命令格式如下:
1 | rclone size remote:path |
安装和事先准备
在本地提前获取tocken
在本地Windows电脑上下载rclone(点这里下载)
然后解压出来,进到解压出来的文件夹位置。
在文件浏览器的地址栏输入cmd,打开cmd窗口:
之后在cmd窗口中执行
rclone authorize "onedrive"
之后按照提示操作获得tocken(复制下来,等会要用)
在服务器上安装Rclone
ssh到你的服务器,执行以下命令来安装最新版的Rclone:
curl https://rclone.org/install.sh | sudo bash
待出现
Now run "rclone config" for setup. Check https://rclone.org/docs/ for more details.
即为安装成功,即可进入下一步进行配置
配置
执行
rclone config
弹出如下信息
2021/01/23 12:18:32 NOTICE: Config file "/root/.config/rclone/rclone.conf" not found - using defaults
No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q>
输入n
选择新建
之后你提示你输入name,要全英文的,也就是你自定义一个网盘的名字,比如我写的是 myod,回车进行下一步
这里弹出很多网盘可供选择,我使用的是onedrive 所以选择 23 回车下一步
之后提示输入client_id和client_secret 这两项都不填写,直接回车就行
之后提示是否编辑高级配置,这里我们不需要,也直接选 n就行
又之后提示是否自动设置,这里我们服务器一般都是命令行环境,没有浏览器,选择 n
接下来要输入刚才复制的tocken,之后就能按照默认完成设置。
注意,现在新版本的rclone会多了一步让你选择你的onedrive是什么属性,很简单的英文,按照你的属性选择一个序号即可。
此外,windows和linux配置时第一步让你填写的网盘名一定要一模一样,windows上的rclone版本也要和linux一样,否则配置到最后一步输入tocken后,会出现错误。
挂载
在完成上面这些操作后,我们的配置工作已经做完,接下来只需要把云盘挂载在你想要的位置就行。
我想把我的云盘挂载在 /root/onedrive
所以我需要提前创建挂载的文件夹
之后安装 FUSE
yum install fuse
必须有fuse才能挂载,不然会报错
使用命令
rclone mount DriveName:Folder LocalFolder --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000
其中 DriveName
为第一开始填的自定义的网盘名name,如果忘记了,可以使用下面的命令来查询
rclone listremotes
Folder
为你的OneDrive云盘里的文件夹,也可以直接设置为 /,LocalFolder
为VPS上的本地文件夹,我这里是 /root/onedrive
至此,已经能在服务器上看到挂载的磁盘了
配置定时任务同时编写自动同步配置脚本
在宝塔的计划任务中添加计划任务。
#!/bin/bash
rclone sync /www/backup/database 自定义网盘名:backup/database
rclone sync /www/wwwroot 自定义网盘名:backup/site
脚本首行是注释,上面的脚本只包含两条命令。
第二行是将/www/backup/database目录及里面的数据库备份文件,同步到你的OneDrive云盘的backup/database文件夹里。其中自定义网盘名这个要回到最开始配置rclone的第一步你自己填写的那个英文字母名字。比如我写的是myod,那么这段代码就改成:
#!/bin/bash
rclone sync /www/backup/database myod:backup/database
rclone sync /www/wwwroot myod:backup/site
第三行是同步网站文件,我没有选择打包的文件,我选择的是直接同步wwwroot中所有的网站目录,将/www/wwwroot目录及里面的所有文件,同步到你的OneDrive云盘的backup/site文件夹里。这个根据你自己的需求修改。
以上就是利用Rclone程序,将网站和数据库备份文件同步到OneDrive网盘的教程。这样VPS服务器和网盘都有网站备份,双重备份更安全。如果你不放心,还可以每周将Onedrive网盘里的文件手动下载到本地电脑。
最后再提醒下,建议每隔一段时间去Onedrive盘查看下同步是否正常,因为即使是Rclone程序也有可能出问题的。
重点提醒的几处最容易出错,一定要记清楚:
1、windows上获取token时输入的“自定义网盘名”,与你在Linux上配置rclone时输入的“自定义网盘名”一定要一样。
2、windows上的rclone版本,一定要和Linux上的rclone版本一样。
原创文章,作者:中国IPv6网,如若转载,请注明出处:https://www.ipv6s.com/soft/202209062195.html