安装
Rclone 是一款用 Go 语言编写的程序,提供单一的二进制文件。
快速入门
- 下载 适用的二进制文件。
- 从压缩包中提取
rclone
可执行文件,在 Windows 上为rclone.exe
。 - 运行
rclone config
进行设置。详见 rclone 配置文档。 - 可选地配置 自动执行。
请参阅下文,获取有关 Linux / macOS / Windows 的详细安装说明。
请参阅 使用文档 了解如何使用 rclone,或运行 rclone -h
。
已安装的 rclone 可通过 rclone selfupdate 命令轻松更新至最新版本。
请参阅 发布签名文档 了解如何验证发布的签名。
脚本安装
要在 Linux/macOS/BSD 系统上安装 rclone,请运行:
sudo -v ; curl https://rclone.org/install.sh | sudo bash
对于测试版安装,请运行:
sudo -v ; curl https://rclone.org/install.sh | sudo bash -s beta
请注意,此脚本会首先检查已安装的 rclone 版本,如果不需要则不会重新下载。
Linux 安装
预编译二进制文件
获取并解压:
curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
cd rclone-*-linux-amd64
复制二进制文件:
sudo cp rclone /usr/bin/
sudo chown root:root /usr/bin/rclone
sudo chmod 755 /usr/bin/rclone
安装手册页:
sudo mkdir -p /usr/local/share/man/man1
sudo cp rclone.1 /usr/local/share/man/man1/
sudo mandb
运行 rclone config
进行设置。详见 rclone 配置文档。
rclone config
macOS 安装
使用 brew 安装
brew install rclone
注意:此版本的 rclone 将不再支持 mount
功能(参见 #5373)。如果在 macOS 上需要挂载功能,请安装预编译的二进制文件或在 从源代码安装 时启用相关选项。
请注意,这是由 rclone 开发者未控制的第三方安装程序,因此可能已过时。其当前版本如下。
使用 MacPorts 安装
在 macOS 上,rclone 也可以通过 MacPorts 安装:
sudo port install rclone
请注意,这是由 rclone 开发者未控制的第三方安装程序,因此可能已过时。其当前版本如下。
更多信息请参阅 此处。
使用 curl 下载预编译二进制文件
为了避免 macOS 看门狗强制要求二进制文件签名和公证的问题,只需使用 curl
下载即可。
下载最新版本的 rclone。
cd && curl -O https://downloads.rclone.org/rclone-current-osx-amd64.zip
解压下载的文件并进入解压后的文件夹。
unzip -a rclone-current-osx-amd64.zip && cd rclone-*-osx-amd64
将 rclone 移动到您的 $PATH 中。您将被提示输入密码。
sudo mkdir -p /usr/local/bin
sudo mv rclone /usr/local/bin/
(mkdir
命令即使目录已存在也是安全的)。
删除剩余文件。
cd .. && rm -rf rclone-*-osx-amd64 rclone-current-osx-amd64.zip
运行 rclone config
进行设置。详见 rclone 配置文档。
rclone config
使用网页浏览器下载预编译二进制文件
当使用网页浏览器下载二进制文件时,浏览器会设置 macOS 看门狗的隔离属性。从 Catalina 开始,尝试运行 rclone
时会弹出提示:
“rclone”无法打开,因为无法验证开发者。
macOS 无法验证此应用是否不含恶意软件。
最简单的解决方法是运行:
xattr -d com.apple.quarantine rclone
Windows 安装
预编译二进制文件
通过点击以下链接获取适合您的处理器类型的二进制文件。如果不确定,请使用第一个链接。
在资源管理器中打开此文件并提取 rclone.exe
。Rclone 是一个便携式可执行文件,因此您可以将其放置在方便的位置。
打开 CMD 窗口(或 powershell)并运行二进制文件。请注意,rclone 默认不会启动 GUI,它在 CMD 窗口中运行。
- 运行
rclone.exe config
进行设置。详见 rclone 配置文档。 - 可选地配置 自动执行。
如果您计划使用 rclone mount 功能,则需要安装第三方工具 WinFsp。
Windows 包管理器(Winget)
Winget 预装在最新版本的 Windows 中。如果没有,请从 Microsoft 商店更新 应用安装程序 包。
安装 rclone:
winget install Rclone.Rclone
卸载 rclone:
winget uninstall Rclone.Rclone --force
Chocolatey 包管理器
确保已安装 Choco
choco search rclone
choco install rclone
这将在您的 Windows 机器上安装 rclone。如果您计划使用 rclone mount,则
choco install winfsp
也会安装该工具。
请注意,这是由 rclone 开发者未控制的第三方安装程序,因此可能已过时。其当前版本如下。
Scoop 包管理器
确保已安装 Scoop
scoop install rclone
请注意,这是由 rclone 开发者未控制的第三方安装程序,因此可能已过时。其当前版本如下。
软件包管理器安装
许多Linux、Windows、macOS和其他操作系统发行版都对rclone进行了打包和分发。
这些分发的rclone版本往往相当过时,因此如果可能的话,我们建议使用其他安装方法。
您可以在此处了解您的操作系统发行版的软件包是否是最新的。
Docker安装
rclone开发者维护了一个rclone的Docker镜像。
这些镜像是基于最小化的Alpine Linux作为发布过程的一部分构建的。
:latest
标签始终指向最新的稳定版本。您可以使用:beta
标签获取来自master的最新构建。您还可以使用版本标签,例如:1.49.1
、:1.49
或:1
。
$ docker pull rclone/rclone:latest
latest: Pulling from rclone/rclone
Digest: sha256:0e0ced72671989bb837fea8e88578b3fc48371aa45d209663683e24cfdaa0e11
...
$ docker run --rm rclone/rclone:latest version
rclone v1.49.1
- os/arch: linux/amd64
- go version: go1.12.9
在从rclone镜像启动rclone Docker容器时,需要考虑一些命令行选项。
- 您需要将主机上的rclone配置目录挂载到Docker容器中的
/config/rclone
。由于rclone会在其配置文件中更新令牌,并且更新过程涉及文件重命名,因此您需要挂载整个主机上的rclone配置目录,而不仅仅是单个主机上的rclone配置文件。 - 您需要将主机上的数据目录挂载到Docker容器中的
/data
。 - 默认情况下,Docker容器内的rclone二进制文件以UID=0(root)运行。因此,在运行过程中创建的所有文件都将具有UID=0。如果您的配置和数据文件在主机上以非root的UID:GID存在,您需要在容器启动命令行中传递这些信息。
- 如果您想访问RC接口(通过API或Web UI),需要将
--rc-addr
设置为:5572
,以便从容器外部连接到它。关于为什么需要这样做的解释,请参见此处。- 注意:在docker网络设置为
host
的情况下运行此容器的用户可能应该将其设置为仅监听localhost,使用127.0.0.1:5572
作为--rc-addr
的值。
- 注意:在docker网络设置为
- 可以在用户空间Docker容器内使用
rclone mount
,并将生成的fuse挂载暴露给主机。具体的docker run
选项可能会因主机而略有不同。参见例如此讨论。您还需要挂载主机上的/etc/passwd
和/etc/group
,以便在容器内使用fuse。
以下是在Ubuntu 18.04.3主机上测试的一些命令:
# 主机上的配置位于~/.config/rclone/rclone.conf
# 主机上的数据位于~/data
# 交互式添加远程
docker run --rm -it \
--volume ~/.config/rclone:/config/rclone \
--user $(id -u):$(id -g) \
rclone/rclone \
config
# 通过列出远程确保配置正确
docker run --rm \
--volume ~/.config/rclone:/config/rclone \
--user $(id -u):$(id -g) \
rclone/rclone \
listremotes
# 在Docker容器内执行挂载,将结果暴露给主机
mkdir -p ~/data/mount
docker run --rm \
--volume ~/.config/rclone:/config/rclone \
--volume ~/data:/data:shared \
--user $(id -u):$(id -g) \
--volume /etc/passwd:/etc/passwd:ro --volume /etc/group:/etc/group:ro \
--device /dev/fuse --cap-add SYS_ADMIN --security-opt apparmor:unconfined \
rclone/rclone \
mount dropbox:Photos /data/mount &
ls ~/data/mount
kill %1
Snap安装
请确保您已安装Snapd
$ sudo snap install rclone
由于Snap的严格隔离,rclone snap无法访问真实的/home/$USER/.config/rclone目录,默认配置路径如下。
- 默认配置目录:
- /home/$USER/snap/rclone/current/.config/rclone
注意:由于Snap的严格隔离,rclone mount
功能不
受支持。
如果需要挂载功能,请安装预编译的二进制文件或在从源代码安装时启用相关选项。
请注意,这由社区维护者控制,而不是rclone开发者,因此可能已经过时。其当前版本如下。
源代码安装
请确保您已安装git和Go。需要Go 1.18或更新版本,建议使用最新发布版本。您可以从您的软件包管理器获取,也可以从golang.org/dl下载。然后您可以运行以下命令:
git clone https://github.com/rclone/rclone.git
cd rclone
go build
这将在子文件夹rclone中检出rclone源代码,您可以稍后修改并发送拉取请求。然后它将在同一文件夹中构建rclone可执行文件。作为初始检查,您现在可以运行./rclone version
(在Windows上为.\rclone version
)。
请注意,在macOS和Windows上,除非您指定额外的构建标签cmount
,否则mount命令将不可用。
go build -tags cmount
这假设您在PATH中有兼容GCC的C编译器(GCC或Clang),因为它使用了cgo。但在Windows上,cmount实现所基于的cgofuse库也支持无cgo构建,即通过将环境变量CGO_ENABLED设置为值0(静态链接)。这是从版本1.59开始构建官方Windows版本rclone的方式。仍然可以在Windows上使用cgo构建,例如通过使用MinGW端口的GCC,在MSYS2发行版中安装它(确保您在经典的mingw64子系统中安装它,ucrt64版本不兼容)。
此外,要在Windows上构建带有mount功能的版本,您必须安装第三方工具WinFsp,并选择“开发者”功能。如果使用cgo构建,您还必须设置环境变量CPATH,指向WinFsp安装中的fuse包含目录(通常为C:\Program Files (x86)\WinFsp\inc\fuse
)。
您可以添加参数-ldflags -s
以省略符号表和调试信息,使可执行文件更小,以及-trimpath
以删除对本地文件系统路径的引用。官方rclone发布版都使用这两个参数构建。
go build -trimpath -ldflags -s -tags cmount
如果您想自定义版本字符串,如rclone version
命令所报告的,您可以设置变量fs.Version
、fs.VersionTag
(保留默认后缀但自定义数字)或fs.VersionSuffix
(保留默认数字但自定义后缀)。这可以通过在构建命令中添加到-ldflags
参数值来完成,如下所示。
go build -trimpath -ldflags "-s -X github.com/rclone/rclone/fs.Version=v9.9.9-test" -tags cmount
在Windows上,官方可执行文件还嵌入了版本信息和文件图标,作为二进制资源。要在您自己的构建中获得这些,您需要在构建命令之前运行以下命令。它会生成一个带有扩展名.syso的Windows资源系统对象文件,例如resource_windows_amd64.syso
,它将被未来的构建命令自动拾取。
go run bin/resource_windows.go
上述命令将生成一个包含基于您运行命令时源代码中fs.Version变量的版本信息的资源文件,这意味着如果该变量的值发生变化,您需要重新运行该命令以反映在版本信息中。此外,如果您在构建命令中如上所述覆盖此版本变量,您也需要在生成资源文件时这样做,否则它仍将使用源代码中的值。
go run bin/resource_windows.go -version v9.9.9-test
您可以不直接执行go build
命令,而是通过Makefile运行它。默认目标将版本后缀从"-DEV"更改为"-beta",后跟额外的提交详细信息,在Windows上嵌入版本信息二进制资源,并将生成的rclone可执行文件复制到您的GOPATH bin文件夹中($(go env GOPATH)/bin
,默认对应于~/go/bin/rclone
)。
make
要在macOS和Windows上使用Makefile构建时包含mount命令:
make GOTAGS=cmount
还有其他make目标可用于更高级的构建,例如为所有支持的操作系统/架构进行交叉编译,并将结果打包成发布工件。参见Makefile和cross-compile.go以获取详细信息。
另一种源代码安装的替代方法是下载源代码、构建并安装rclone - 所有这些都在一个操作中,作为常规的Go包。源代码将存储在Go模块缓存中,结果可执行文件将位于您的GOPATH bin文件夹中($(go env GOPATH)/bin
,默认对应于~/go/bin/rclone
)。
go install github.com/rclone/rclone@latest
在某些情况下,当包含大型SDK的所有后端时,rclone可执行文件的大小可能对于部署在非常受限的环境中来说太大了。为了限制二进制文件大小,可以在backends/all/all.go
中注释掉未使用的后端,并在cmd/all/all.go
中注释掉未使用的命令,然后使用go build
或make
构建。
Ansible 安装
可通过 Stefan Weichinger 的 Ansible 角色 完成此操作。
操作指南
- 将
git clone https://github.com/stefangweichinger/ansible-rclone.git
克隆到本地角色目录中 - 将角色添加到您希望安装 rclone 的主机上:
- hosts: rclone-hosts
roles:
- rclone
便携式安装
如上文所述,rclone 是一个单一可执行文件(在 Windows 上为 rclone.exe
),您可以将其作为 zip 压缩文件下载并解压到您选择的位置。在执行不同命令时,它可能会在不同位置创建文件,例如配置文件和各种临时文件。默认情况下,这些文件的位置根据您的操作系统而定,例如配置文件位于用户配置文件目录中,临时文件位于标准临时目录中,但您可以自定义所有这些位置,例如创建一个完全自包含的便携式安装。
运行 配置路径 命令以查看 rclone 将使用的位置。
要覆盖这些位置,请设置相应的选项(作为命令行参数,或作为环境变量):
自动启动
在按照上述说明安装和配置 rclone 后,您可以将其用作交互式命令行工具。如果您的目标是执行定期操作,例如定期同步,您可能希望在操作系统的调度程序中配置您的 rclone 命令。如果您需要暴露服务般的功能,例如远程控制、图形用户界面、服务或挂载,您通常希望 rclone 命令始终在后台运行,并将其配置为在服务基础设施中运行可能是一个更好的选择。以下是在不同操作系统上实现此目标的一些替代方案。
注意:在设置自动运行之前,强烈建议您先从命令提示符手动测试您的命令。
在 Windows 上自动启动
在 Windows 上自动启动的最相关替代方案包括:
- 在用户登录时使用启动文件夹运行
- 在用户登录时、系统启动时或按计划使用任务计划程序运行
- 在系统启动时使用 Windows 服务运行
在后台运行
Rclone 是一个控制台应用程序,因此如果不是从现有的命令提示符启动,例如从快捷方式启动 rclone.exe,它将打开一个命令提示符窗口。在配置 rclone 从任务计划程序和 Windows 服务运行时,您可以将其设置为在后台隐藏运行。从 rclone 1.54 版本开始,您还可以通过添加选项 --no-console
使其从任何地方隐藏运行(程序启动时可能会短暂闪现)。由于 rclone 通常将信息和任何错误消息写入控制台,您必须将其重定向到文件才能查看。Rclone 有一个内置选项 --log-file
用于此目的。
示例命令以在后台运行同步:
c:\rclone\rclone.exe sync c:\files remote:/files --no-console --log-file c:\rclone\logs\sync_files.txt
用户账户
如挂载文档中所述,作为管理员创建的挂载驱动器对其他账户不可见,即使是作为管理员提升的账户也是如此。通过以内置的 SYSTEM
用户账户运行挂载命令,它将创建所有系统用户可访问的驱动器。计划任务和 Windows 服务都可以用来实现这一点。
注意:请记住,当 rclone 以 SYSTEM
用户身份运行时,它看到的用户配置文件将不是您的。这意味着,如果您通常在默认位置运行 rclone 并使用配置文件,要在以系统用户身份运行时使用相同的配置,您必须通过 --config
选项明确告诉 rclone 在哪里找到它,否则它将在系统用户配置文件路径 (C:\Windows\System32\config\systemprofile
) 中查找。要从命令提示符手动测试您的命令,您可以使用 Microsoft 的 Sysinternals 套件中的 PsExec 实用程序,该实用程序带有选项 -s
以 SYSTEM
用户身份执行命令。
从启动文件夹启动
要快速执行 rclone 命令,您可以简单地为您希望运行的完整 rclone 命令创建一个标准的 Windows 资源管理器快捷方式。如果您将此快捷方式存储在特殊的“启动”开始菜单文件夹中,Windows 将在登录时自动运行它。要在 Windows 资源管理器中打开此文件夹,请输入路径 %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup
,或者如果您希望命令在每个登录的用户启动时运行,请输入 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
。
这是 rclone 自动启动的最简单方法,但它不提供设置为以不同用户身份运行,或在特定事件上设置条件或操作的功能。设置计划任务如以下所述通常会给您带来更好的结果。
从任务计划程序启动
任务计划程序是 Windows 内置的管理工具,可用于以高度可配置的方式自动启动 rclone,例如按计划定期运行、在用户登录时运行或在系统启动时运行。它可以配置为以当前用户身份运行,或者对于需要对所有用户可用的挂载命令,可以以 SYSTEM
用户身份运行。有关技术信息,请参阅 https://docs.microsoft.com/windows/win32/taskschd/task-scheduler-start-page。
作为服务运行
对于在系统启动时运行 rclone,您可以创建一个 Windows 服务来执行您的 rclone 命令,作为配置为在启动时运行的计划任务的替代方案。
挂载命令内置服务集成
对于挂载命令,rclone 通过它使用的第三方 WinFsp 库具有内置的 Windows 服务集成。注册为常规 Windows 服务很简单,只需执行内置的 PowerShell 命令 New-Service
(需要管理员权限)。
示例 PowerShell 命令,用于创建一个 Windows 服务,将 remote:/files
挂载为驱动器字母 X:
,供所有用户使用(服务将以本地系统账户身份运行):
New-Service -Name Rclone -BinaryPathName 'c:\rclone\rclone.exe mount remote:/files X: --config c:\rclone\config\rclone.conf --log-file c:\rclone\logs\mount.txt'
WinFsp 服务基础设施支持将文件系统实现的服务(如 rclone)纳入其自己的启动服务,作为一种“子服务”。这还有一个额外的优势,即它还实现了一个网络提供者,该提供者集成到 Windows 标准管理网络驱动器的方法中。这目前不被 Rclone 官方支持,但通过 WinFsp 2019.3 B2 / v1.5B2 或更高版本,应该可以通过路径重写实现,如此处所述。
第三方服务集成
要运行任何 rclone 命令的 Windows 服务,可以使用出色的第三方实用程序 NSSM,即“非吸烟服务管理器”。它包括一些高级功能,例如调整进程优先级、定义进程环境变量、将写入 stdout 的任何内容重定向到文件,以及根据不同退出代码自定义响应,带有一个用于配置所有内容的图形用户界面(尽管它也可以从命令行使用)。
还有其他几个替代方案。再提一个,WinSW,“Windows 服务包装器”,值得一试。它需要 .NET Framework,但在较新版本的 Windows 上已预装,并且还提供了包含必要运行时(.NET 5)的替代独立分发。WinSW 是一个仅命令行的实用程序,您必须手动创建一个包含服务配置的 XML 文件。这对某些人来说可能是一个缺点,但它也可以是一个优势,因为它易于备份和重用配置设置,而无需在图形用户界面中手动执行步骤。需要注意的一点是,默认情况下它不会在错误时重启服务,必须在配置文件中明确启用此功能(通过“onfailure”参数)。
在 Linux 上自动启动
作为服务启动
要始终在后台运行 rclone,适用于挂载命令等,您可以使用 systemd 将 rclone 设置为系统或用户服务。作为系统服务运行可确保即使运行它的用户没有活动会话,它也会在启动时运行。作为用户服务运行 rclone 可确保它仅在配置的用户登录系统后启动。
从 cron 定期运行
要运行定期命令,例如复制/同步,您可以设置一个 cron 作业。