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

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

简介

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

主要特点

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

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

安装

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 即可使用。

配置(首要步骤)

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

1
rclone config

配置文件所在的位置

Linux

1
~/.config/rclone

Windows

1
%USERPROFILE%\AppData\Roaming\rclone

复制/备份

将文件从源位置复制到目标位置:根据文件大小、修改时间或 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:复制可当作备份使用,写为脚本文件,加入定时和任务即可

挂载

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

远程存储挂载到本地

1
rclone mount --buffer-size 4M --vfs-cache-mode writes remote_name:remote_path local_path --daemon
  • --buffer-size:在传输文件时,读取和写入操作的缓冲区大小
  • --vfs-cache-mode:缓存模式,可选 off(默认),writes,full
  • --vfs-cache-max-size:限制 VFS 缓存的最大大小
  • --vfs-cache-max-age:限制缓存文件的最大存活时间
  • --daemon:后台挂载

使用 alist 在线播放 115 上的视频可能会失败,但挂载后即可播放

播放器推荐使用 mpv,了解更多可观看以下视频:mpv 播放器,安装配置,脚本推荐

案例:坚果云挂载到 $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

开机自动挂载

使用定时任务

1
crontab -e

案例:开机挂载 alist

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

单向同步

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

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

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

1
rclone sync --interactive SOURCE remote:DESTINATION

远程存储同步到本地

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

1
rclone sync jianguoyun:/ $HOME/jianguoyun

本地同步到远程存储

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

1
rclone sync $HOME/jianguoyun jianguoyun:/

双向同步

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

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

开启命令补全

如果输入 rclone按住 tab 没有补全,可以使用如下方法开启命令补全

rclone 是有命令补全功能的,可以自动帮我们补全网盘中的路径,如果没有这个功能,还需要手动输入路径,这是不太友好的,这个教程教你如何开启

先安装 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-name

Web UI

rclone 也提供了 Web UI 界面:

1
rclone rcd --rc-web-gui

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

其他命令

  • 列出所有配置
1
rclone listremotes
  • 查看特定远程的配置
1
rclone config show <remote_name>
  • 查看所有配置的详细信息
1
rclone config dump

小技巧

只创建相同目录结构

如果只想创建文件夹结构,而不上传文件

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