共计 9354 个字符,预计需要花费 24 分钟才能阅读完成。
安装
Rclone是一个Go程序,以单个二进制文件的形式出现。
快速入门
- 下载相关的二进制文件.
- 从档案中提取
rclone
可执行文件,在Windows中为rclone.exe
。 - 运行
rclone config
来设置。更多细节见rclone config docs。 - 可选择配置自动执行.
请看下面一些扩展的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安装{#linux}
预编译的二进制文件{#linux-precompiled}。
下载和解压缩
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
安装 manpage
sudo mkdir -p /usr/local/share/man/man1
sudo cp rclone.1 /usr/local/share/man/man1/
sudo mandb
运行rclone config
进行设置。更多细节见rclone config docs.
rclone config
macOS安装 {#macos}
用brew {#macos-brew}安装。
brew install rclone
注意:这个版本的rclone将不再支持`mount’(见#5373)。如果想在macOS上挂载,要么安装一个预编译的二进制文件,要么在install-from-source时启用相关选项。
请注意,这是一个不受rclone开发者控制的第三方安装程序,所以它可能已经过时了。它的当前版本如下.
预编译的二进制文件,使用curl {#macos-precompiled}。
为了避免macOS gatekeeper强制要求二进制文件签名和公证的问题,使用`curl’下载即可。
Download the latest version of 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
Run rclone config
to setup. See [rclone config docs](/docs.运行rclone config
来设置。更多细节见rclone config docs。html) for more details.
rclone config
预编译的二进制文件,使用网络浏览器{#macos-precompiled-web}。
当用网络浏览器下载二进制文件时,浏览器将设置macOS gatekeeper的隔离属性。从Catalina开始,当试图运行
`rclone’,会出现一个弹出窗口说。
"rclone" cannot be opened because the developer cannot be verified.
macOS cannot verify that this app is free from malware.
最简单的修复方法是运行
xattr -d com.apple.quarantine rclone
Windows安装 {#windows}
预编译的二进制文件 {#windows-precompiled}
通过点击这些链接,为你的处理器类型获取正确的二进制文件。如果不确定,请使用第一个链接.
在资源管理器中打开这个文件,提取rclone.exe
。Rclone是一个可移植的可执行文件,所以你可以把它放在方便的地方。
打开CMD窗口(或Powershell),运行二进制文件。注意,rclone默认不会启动GUI,它在CMD窗口中运行。
- 运行
rclone.exe config
进行设置。更多细节见rclone config docs。 - 可选择配置自动执行。
如果你打算使用rclone mount功能,那么你也需要安装第三方工具[WinFsp](https://winfsp.dev/)。
Chocolatey软件包管理器{#windows-chocolatey}。
确保你安装了Choco。
choco search rclone
choco install rclone
这将在你的Windows机器上安装rclone。如果你打算使用[rclone mount](/rclone_mount.html),那么
choco install winfsp
也会安装这个。
请注意,这是一个不受rclone开发者控制的第三方安装程序,所以它可能已经过时了。它的当前版本如下。
软件包管理器的安装 {#软件包管理器}。
许多Linux、Windows、macOS和其他操作系统发行版都打包和分发了rclone。
分发的rclone版本经常是相当过时的,因此我们推荐其他的安装方法,如果可能的话.
你可以在这里了解你的操作系统发行版的软件包是否是最新的。.
Docker安装{#docker}。
rclone的开发者维护了一个[docker image for rclone](https://hub.docker.com/r/rclone/rclone)。
这些图像是作为发布过程的一部分,基于最小的Alpine Linux建立的。.
:latest
标签将始终指向最新的稳定版本。 你可以使用:beta
标签来获取最新的主版本。 你也可以使用版本标签,例如::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的配置目录
/config/rclone
挂载到Docker容器中。由于rclone在其配置文件中更新令牌,而且更新过程涉及到文件重命名,你需要挂载整个主机rclone配置文件目录,而不仅仅是单个主机rclone配置文件。 -
你需要在
/data
处挂载一个主机数据目录到Docker容器。 -
默认情况下,Docker容器内的rclone二进制文件以UID=0(root)运行。 因此,在运行中创建的所有文件都有UID=0。 如果你的配置文件和数据文件以非根的UID:GID驻留在主机上,你需要在容器启动命令行中传递这些信息.
-
如果你想访问RC接口(无论是通过API还是Web UI),需要将
--rc-addr
设置为:5572
,以便从容器外连接到它。关于为什么要这样做的解释见这里。- 注意:用户在运行这个容器时,如果将docker网络设置为 "host",那么可能应该将其设置为只监听localhost,并将 "127.0.0.1:5572 "作为docker的值。
--rc-addr
- 注意:用户在运行这个容器时,如果将docker网络设置为 "host",那么可能应该将其设置为只监听localhost,并将 "127.0.0.1:5572 "作为docker的值。
-
可以在用户空间的Docker容器中使用
rclone mount
,并将产生的fuse mount暴露给主机。具体的 "docker run "选项在不同的主机上可能略有不同。请看,例如这个[线程](https://github.com/moby/moby/issues/9448)中的讨论。你还需要挂载主机
/etc/passwd
和/etc/group
,以便fuse能在容器内工作。
下面是在Ubuntu 18.04.3主机上测试的一些命令。
# config on host at ~/.config/rclone/rclone.conf
# data on host at ~/data
# make sure the config is ok by listing the remotes
docker run --rm \
--volume ~/.config/rclone:/config/rclone \
--volume ~/data:/data:shared \
--user $(id -u):$(id -g) \
rclone/rclone \
listremotes
# perform mount inside Docker container, expose result to host
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
源安装 {#源}
确保你已经安装了git和Go。需要1.17或更新的Go版本,建议使用最新版本。你可以从你的软件包管理器中获取,或者从golang.org/dl下载。然后你可以运行以下程序。
git clone https://github.com/rclone/rclone.git
cd rclone
go build
这将检查出子文件夹rclone中的rclone源代码,你可以随后修改并发送拉动请求。然后,它将在同一文件夹中构建rclone可执行文件。作为初步检查,你现在可以运行./rclone版本
(Windows下为.\rclone版本
)。
注意,在macOS和Windows上,mount命令将不可用,除非你指定一个额外的构建标签`cmount’。
go build -tags cmount
这假定你的PATH中有一个GCC兼容的C编译器(GCC或Clang),因为它使用cgo。但是在Windows上,cmount的实现所基于的cgofuse库也支持无cgo的构建,即通过设置环境变量CGO_ENABLED为0值(静态链接)。从1.59版开始,rclone的官方Windows版本就是这样构建的。通过使用GCC的MinGW端口,例如在MSYS2发行版中安装它,仍然可以在Windows上用cgo构建(确保你安装在经典的mingw64子系统中,ucrt64版本并不兼容)。
此外,在Windows上,你必须安装第三方工具WinFsp,并选择 "开发者 "功能。如果用cgo构建,你还必须设置环境变量CPATH,指向WinFsp安装中的fuse include目录(通常是C:\Program Files (x86)\WinFsp\inc\fuse
)。
你也可以添加参数-ldflags -s
(包括或不包括-tags cmount
),以省略符号表和调试信息,使可执行文件更小;-trimpath
以删除对本地文件系统路径的引用。这就是官方rclone版本的构建方式。
go build -trimpath -ldflags -s -tags cmount
你可以通过Makefile来运行go build
命令,而不是直接执行。它把版本号的后缀从"-DEV "改为"-beta",并附加了提交细节。它还会将生成的rclone可执行文件复制到你的GOPATH bin文件夹($(go env GOPATH)/bin
,默认对应于~/go/bin/rclone
)。
make
要在macOS和Windows上的Makefile构建中包含mount命令。
make GOTAGS=cmount
还有其他的make目标可以用于更高级的构建,比如为所有支持的操作系统/架构进行交叉编译,将图标和版本信息资源嵌入到windows可执行文件中,并将结果打包成发布工件。 详情请参见Makefile和cross-compile.go。
另一种方法是下载源码,将rclone作为一个普通的Go包,在一次操作中构建和安装。源码将被保存在Go模块缓存中,而生成的可执行文件将在你的GOPATH bin文件夹中($(go env GOPATH)/bin
,默认对应于~/go/bin/rclone
)。
使用Go 1.17或更新版本。
go install github.com/rclone/rclone@latest
对于1.17以上的Go版本(不要**使用-u
标志,它会导致Go尝试更新rclone使用的依赖关系,有时这些依赖关系在当前版本中无法使用)。
go get github.com/rclone/rclone
Ansible安装 {#ansible}
这可以通过Stefan Weichinger的ansible角色来实现。
说明
git clone https://github.com/stefangweichinger/ansible-rclone.git
到你的本地角色目录下
2.将该角色添加到你想要安装rclone的主机上。
- hosts: rclone-hosts
roles:
- rclone
便携式安装 {#portable}
如[上]所述(/install.html#quickstart),rclone是一个单一的可执行文件(rclone
,或Windows下的rclone.exe
),你可以下载一个压缩包并解压到你选择的位置。当执行不同的命令时,它可能在不同的位置创建文件,如配置文件和各种临时文件。默认情况下,这些文件的位置与你的操作系统有关,例如,配置文件在你的用户配置文件目录下,临时文件在标准的临时目录下,但你可以定制所有这些文件,例如,使一个完全独立的、可移植的安装。
运行config paths命令以查看rclone将使用的位置。
要覆盖它们,需要设置相应的选项(作为命令行参数,或作为
environment variables):
自动启动
如上所述,在安装和配置了rclone之后,你就可以把rclone作为一个交互式的命令行工具来使用了。如果你的目标是进行周期性的操作。
比如常规的sync,你可能想在操作系统的调度器中配置你的rclone命令。如果你需要公开类似服务的功能,比如远程控制、GUI、服务或挂载,你通常希望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
用户账户
正如mount文档中提到的,以管理员身份创建的挂载驱动器对其他账户是不可见的,甚至是被提升为管理员的账户。通过以内置的 "SYSTEM "用户账户运行mount命令,它将创建系统中所有人都可以访问的驱动器。计划任务和Windows服务都可以用来实现这个目的。
注意: 记住,当rclone以SYSTEM
用户身份运行时,它看到的用户配置文件将不是你的。这意味着,如果你平时运行rclone时,配置文件在默认位置,那么当你作为系统用户运行时,要想使用相同的配置,你必须明确告诉rclone用--config
选项找到它,否则它将在系统用户配置文件路径(C:\Windows\System32\config\systemprofile
)中寻找。
要从命令提示符中手动测试你的命令,你可以用微软Sysinternals套件中的PsExec工具来运行它,该工具使用选项s
以SYSTEM
用户身份执行命令。
从启动文件夹启动
为了快速执行rclone命令,你可以简单地为你想运行的完整rclone命令创建一个标准的Windows资源管理器快捷方式。如果你把这个快捷方式存放在特殊的 "启动 "开始菜单文件夹中,Windows会在登录时自动运行它。要在Windows Explorer中打开这个文件夹,输入路径%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,你可以创建一个执行rclone命令的Windows服务,作为配置为启动时运行的预定任务的替代方案。
挂载命令内置服务集成
对于挂载命令,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或更高版本中,通过路径重写应该可以实现[这里](https://github.com/rclone/rclone/issues/3340)。
第三方服务整合
对于运行任何rclone命令的Windows服务,可以使用优秀的第三方工具NSSM,即 "Non-Sucking Service Manager"。它包括一些高级功能,如调整进程优先级、定义进程环境变量、将任何写入stdout的东西重定向到文件,以及对不同退出代码的自定义响应,有一个GUI来配置一切(尽管它也可以从命令行使用 )。
还有一些其他的替代品。再提一个,WinSW,"Windows Service Wrapper",值得一试。它需要.NET框架,但在较新版本的Windows上预装了,它还提供了包括必要的运行时间(.NET 5)的替代独立发布。 WinSW是一个只有命令行的工具,你必须手动创建一个包含服务配置的XML文件。这对一些人来说可能是个缺点,但也可能是个优点,因为它很容易备份和重新使用配置设置,而不需要在GUI中进行手动操作。需要注意的是,默认情况下,它不会在出错时重启服务,人们必须在配置文件中明确启用(通过 "onfailure "参数)。
Linux上的自动启动
作为一项服务开始
要想让rclone始终在后台运行,与挂载命令等相关,可以使用systemd将rclone设置为系统或用户服务。以系统服务的形式运行,可以确保在启动时运行,即使它所运行的用户没有活动会话。以用户服务的形式运行rclone,可以确保它只在配置的用户登录系统后启动。
从cron中定期运行
要运行一个周期性的命令,如复制/同步,你可以设置一个cron job。