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

如果不清楚某个存储如何添加,请参考官方文档

文件路径

rclone 配置文件所在的路径

Linux

1
~/.config/rclone

Windows

1
%USERPROFILE%\AppData\Roaming\rclone

第一次安装没有配置文件和对应的路径,运行 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 subcommand [options] <parameters> <parameters...>

subcommand:rclone 的操作命令,比如:sync, copy, ls,可以通过 commands查看所有支持的命令

options:选项可以是单个字母标志 (例如 - v)、一组单个字母标志 (例如 - Pv) 或长标志 (例如 ——progress)。不需要任何选项。选项可以位于子命令之后、参数之间或最后,但只能在子命令之前使用全局选项。—— 选项之后的任何内容都不会被解释为选项,因此,如果需要添加一个以 - 开头的参数,请先将其自身设置为 -,例如

1
rclone lsf -- -directory-starting-with-dash

parameter:通常是文件路径或 rclone remote, 例如 /path/to/file 或 remote:path/to/file, 但也可以是其他内容 —— 子命令帮助会告诉你具体是什么。

子命令

1
2
3
4
5
6
7
8
# lists a remote
rclone ls remote:path

# copies /local/path to the remote
rclone copy /local/path remote:path

# syncs /local/path to the remote
rclone sync --interactive /local/path remote:path

为了区分本地路径和远程路径,远程路径需要使用 remote_name:path (最少也要一个 : 符号)

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

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

1
rclone lsd jianguoyun:/

而这个是不可以的

1
rclone lsd jianguoyun

命令详解

复制

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

语法:

1
rclone copy [options] 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

定时备份/复制

将复制命令写入到脚本文件,设置定时任务执行脚本

挂载

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

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

语法:

1
rclone mount [options] 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 (一个文件列表程序) 中的 /film 目录挂载到 Windows 系统上的 K: 盘符,设置读缓冲的大小为 4MB,设置 VFS (Virtual File System) 缓存模式为 writes,设置 VFS 缓存的最大大小为 2GB。设置挂载卷的名称为 alist_127.0.0.1_film,启用网络模式。

开机自动挂载

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

案例:开机挂载 alist

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

单向同步

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

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

语法:

1
rclone sync [options] SOURCE remote:DESTINATION

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

远程存储同步到本地

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

1
rclone sync jianguoyun:/ $HOME/jianguoyun

本地同步到远程存储

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

1
rclone sync $HOME/jianguoyun jianguoyun:/

双向同步

语法:

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

截止到 2025-08-06 rclone v1.58 仍暂处于测试阶段,官方建议谨慎使用,我的建议是不使用(数据无价)

移动

将文件从 存储 1 移动到 存储 2,会在目的存储自动创建文件夹

语法:

1
rclone move remote1:path remote2:path

将本地文件移动到坚果云上

1
rclone move /mnt/file jianguoyun:/test/file -P

其他命令

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

1
rclone listremotes

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

1
rclone config show <remote_name>

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

1
rclone config dump

Web UI

rclone 提供了 Web UI 界面:

1
rclone rcd --rc-web-gui

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

一些技巧

只创建相同目录结构

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

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