Featured image of post rclone,统一管理、备份,同步文件,文件夹到多种云存储平台

rclone,统一管理、备份,同步文件,文件夹到多种云存储平台

简介

rclone 是一个强大的命令行工具,旨在管理和同步文件到多种云存储服务及本地文件系统。它支持超过 70 种不同的云存储提供商,如 Google Drive、Dropbox、Amazon S3、OneDrive 等。

官网地址:https://rclone.org

主要特点

  • 多种存储支持:支持超过 70 种不同的云存储服务。
  • 文件同步:可以在本地和云之间同步文件或文件夹。
  • 加密功能:支持文件加密,确保数据安全。
  • 增量备份:只同步变化的文件,节省时间和带宽。
  • 跨平台:可以在 Windows、macOS 和 Linux 上运行。
  • 脚本自动化:可以通过脚本实现定期备份和同步。

安装

Linux / macOS / BSD

在 Linux/macOS/BSD 系统上安装 rclone,可以运行以下命令:

1
sudo -v ; curl https://rclone.org/install.sh | sudo bash

若要安装测试版,可以运行:

1
sudo -v ; curl https://rclone.org/install.sh | sudo bash -s beta

Windows

下载地址:

解压文件,将rclone所在的目录添加到PATH环境变量,即可在终端任意位置运行 rclone命令

配置远程存储

首次使用 rclone 时,需要配置远程存储。执行以下命令并根据提示操作:

1
rclone config

配置文件所在的位置:

Linux

1
~/.config/rclone/rclone.conf

Windows

1
%USERPROFILE%\AppData\Roaming\rclone\rclone.conf

如果第一次安装没有配置文件和对应的路径,运行 rclone config退出就会自动创建,不过文件内容为空

命令补全

rclone 含有命令补全,输入 rclone按住 tab 键可以自动帮我们补全远程存储中的路径,如果没有这个功能,需要手动输入路径,可以尝试使用如下方法开启命令补全

安装 bash-completion

1
2
3
4
5
6
7
sudo apt update  # Debian/Ubuntu
sudo apt install bash-completion

sudo yum update  # CentOS/RHEL/Fedora
sudo yum install bash-completion

sudo pacman -S bash-completion # Arch Linux/Manjaro

开启补全功能

1
2
sudo rclone genautocomplete bash | sudo tee /etc/bash_completion.d/rclone
source /etc/bash_completion.d/rclone

再次尝试 rclone 命令,输入,使用 tab 键查看是否有补全

1
rclone lsd remote:/

基本用法

rclone的语法结构:

1
rclone <命令>  [参数] <源路径> <目标路径>
  • 命令:rclone支持的命令,可以通过 https://rclone.org/commands/查看所有支持的命令
  • 参数:命令支持的参数,参考对应的命令
  • 源路径:顾名思义
  • 目标路径:顾名思义

额外说明,为了区分本地路径和远程路径,使用远程路径需要使用 name:path

  • name:rclone配置远程存储时起的名字
  • path:配置的远程存储的路径

比如:

查看远程存储的文件列表(假设已经创建了一个名为 jianguoyun的远程存储)

1
rclone lsd jianguoyun:/

复制

将文件从源位置复制到目标位置,根据文件大小、修改时间或 MD5SUM 判断跳过相同的文件

语法:

1
rclone copy source:sourcepath dest:destpath -P

参数:

  • -P:查看具体信息

复制亦可当作备份使用,不会删除远程文件

本地复制到远程存储

案例:本地 software 文件夹复制到 alist 下的 aliyunpan/software

1
rclone copy ~/software alist:/aliyunpan/software -P

远程存储 a 复制到远程存储 b

某些云盘支持秒传,可以快速将一个云盘文件内容复制到另一个云盘。rclone 使用 copy 复制也是支持的。

有些云盘上传单个文件大小有限制,例如 115 原石会员最大支持单个文件 5G,超过该大小即使支持秒传也无法使用。为了秒传的可用性,可以添加 --max-size 参数跳过超大的文件,例如 --max-size 500M 跳过超过 500M 的文件。

案例:alist 挂载的 aliyunpan/infotech 复制到 alist 挂载的 115/infotech,并跳过超过 500M 的文件

1
vim ~/bin/rclone_copy_from_local_software_to_alist_aliyunpan_software.sh
1
rclone copy alist:aliyunpan/infotech/ alist:115/infotech/ --max-size 500M -P
1
chmod +x ~/bin/rclone_copy_from_local_software_to_alist_aliyunpan_software.sh

定时备份/复制

Tips:复制可当作备份使用,写入到脚本文件,定时任务执行脚本即可

挂载

将远程存储挂载到本地,作为本地文件系统使用,支持本地播放视频、打开文件,编辑文件等操作

注意:Windows 平台挂载需要额外安装 winfsp,且默认路径不存在

语法:

1
rclone mount remote:path/to/files /path/to/local/mount

参数:

  • --buffer-size:在传输文件时,读取和写入操作的缓冲区大小,默认不清楚,建议挂载加上,大小 4M
  • --vfs-cache-mode:缓存模式,可选 off(默认),writes,full
  • --vfs-cache-max-size:限制 VFS 缓存的最大大小,默认无限制
  • --vfs-cache-max-age:限制缓存文件的最大存活时间,默认 1 小时
  • --daemon:后台挂载,Windows 不支持
  • --volname:挂载名字,Windows 平台

取消挂载

1
fusermount -u 挂载路径

远程存储挂载到本地

案例:坚果云挂载到 $HOME/mnt/jianguoyun

创建挂载点

1
mkdir -p $HOME/mnt/jianguoyun

前台挂载(退出终端挂载会取消)

1
rclone mount --buffer-size 4M --vfs-cache-mode writes jianguoyun: $HOME/mnt/jianguoyun

后台挂载

1
rclone mount --buffer-size 4M --vfs-cache-mode writes jianguoyun: $HOME/mnt/jianguoyun --daemon

取消挂载

1
fusermount -u $HOME/mnt/jianguoyun

案例:alist挂载到本地 $HOME/mnt/alist

1
mkdir -p $HOME/mnt/alist

前台挂载

1
rclone mount --buffer-size 4M --vfs-cache-mode writes alist: $HOME/mnt/alist

后台挂载

1
rclone mount --buffer-size 4M --vfs-cache-mode writes alist: $HOME/mnt/alist --daemon

取消挂载

1
fusermount -u $HOME/mnt/alist

案例:windows 挂载 alist film 路径到本地驱动器 K

1
rclone mount alist:/film K: --buffer-size 4M --vfs-cache-mode writes --vfs-cache-max-size 2G --volname alist_127.0.0.1_film --network-mode

开机自动挂载

借助定时任务实现或者创建系统服务

案例:开机挂载 alist

1
crontab -e
1
@reboot rclone mount --buffer-size 4M --vfs-cache-mode writes alist: $HOME/mnt/alist --daemon

单向同步

源路径 文件同步到 目的路径,会 删除目的路径文件

如果只是需要备份文件,使用 复制

语法:

1
rclone sync --interactive SOURCE remote:DESTINATION

这可能导致数据丢失,首先使用 --dry-run--interactive/-i 进行测试。

远程存储同步到本地

案例:坚果云同步文件到本地

1
rclone sync jianguoyun:/ $HOME/jianguoyun

本地同步到远程存储

案例:本地同步文件到坚果云

1
rclone sync $HOME/jianguoyun jianguoyun:/

双向同步

语法:

1
rclone bisync remote1:path1 remote2:path2 [flags]

暂处于测试阶段,不建议使用!!

Web UI

rclone 提供了 Web UI 界面:

1
rclone rcd --rc-web-gui

此命令会从 GitHub 下载 UI 文件,因此需要能够访问 GitHub。

其他命令

列出所有已经配置的远程存储名字

1
rclone listremotes

查看特定远程存储的配置详情

1
rclone config show <remote_name>

查看所有远程存储的详情,以json格式输出

1
rclone config dump

小技巧

只创建相同目录结构

将目标位置拥有原位置同样的目录结构,保持目录结构的一致

1
rclone copy  source:/path dest:/path --filter "+ */" --filter "- *" --progress
  • source:/path:源路径
  • dest:/path:远程目录
页面浏览量Loading
网站总访客数:Loading
网站总访问量:Loading
使用 Hugo 构建
主题 StackJimmy 设计
-->