Rclone-将文件和目录同步到Linux中的云存储
大家好,今天我们将学习什么是Rclone以及如何在基于Linux的操作系统中安装它。
Rclone是一个命令行程序,用于与Google Drive,Amazon S3,Openstack Swift/Rackspace云文件/Memset Memstore,Dropbox,Google Cloud Storage和本地文件系统之间来回同步文件和目录。
它是一个Go程序,并且作为一个二进制文件出现。 Rclone是根据MIT许可的条款提供的免费和开源软件,该软件托管在其Github存储库中。
Rclone的一些显着特征是:
- 始终检查MD5SUM的文件完整性
- 文件上保留的时间戳
- 基于整个文件支持部分同步
- 复制模式仅复制新文件/更改过的文件
- 同步模式使目录相同
- 检查模式以检查所有MD5SUM
- 可以与网络同步,例如。两个不同的云端硬盘帐户
安装
Rclone是Go程序,是一个二进制文件。
我们可以从他们的官方下载相关的二进制文件。
或者通过Go程序安装。
如果没有Go Program,则可以如下所示安装它:
1.安装Go
在Ubuntu系统上:
$sudo apt-get install golang
在Fedora,CentOS,RHEL系统上:
a)下载并设置Fedora EPEL存储库
# yum install http://ftp.riken.jp/Linux/fedora/epel/6/i386/epel-release-6-8.noarch.rpm
b)使用yum管理器安装golang
# yum install golang
2.用Go安装Rclone
我们可以使用Go程序轻松安装rclone,只需执行一个命令即可启动,它将在$GOPATH/bin中构建二进制文件。
$go get github.com/ncw/rclone
注意:如果遇到软件包github.com/ncw/rclone之类的错误:无法下载,$GOPATH未设置。
有关更多详细信息,请参见:go help gopath然后,很明显我们没有定义$GOPATH。
这是我们的Go程序下载和构建软件包的目录。
为了解决这个问题,我们应该在shell或者终端中执行以下命令,然后在上面重试。
$export GOPATH="$HOME/gopath/"
其中上述命令会将$GOPATH指向/home/username/gopath /目录。
配置
现在,由于我们已成功将rclone安装在/home/username/gopath /目录下。
现在,我们要配置rclone。
因此,为此,我们需要输入$GOPATH/bin,因为二进制rclone在该文件夹中。
$cd $GOPATH/bin
现在,就像我们在bin目录中一样,其中存在一个名为rclone的可执行文件。
我们要使rclone二进制文件易于作为全局二进制命令来访问。
为此,我们将filerclone作为root模式复制到/usr/bin /。
$sudo cp rclone /usr/bin/
现在,我们将其配置为。
$rclone config
现在,我们将获得创建新遥控器的选项。
由于我们目前没有遥控器,所以我们一定要添加它。
要添加新的遥控器,我们需要输入n并为其命名,我们将其命名为gdrive。
之后,将列出我们要与新遥控器一起使用的一组来源。
当我们要测试Google云端硬盘时,我们想选择6)硬盘。
然后,我们将被问到有关使用客户端的一些问题,我们可以按回车键并默认使用rclone的应用程序。
然后,我们将获得一个链接,我们应该接受该链接,以便将rclone与Google云端硬盘连接。
我们应该在Web浏览器中浏览该链接,然后将得到一个代码,需要将其粘贴到rclone的命令行界面中。
现在,我们要输入Y来确认配置,并且现在要退出rclone配置。
现在,我们已成功将Rclone与Google云端硬盘连接。
使用Rclone
现在,我们将学习如何使用Rclone通过Google云端硬盘传输/同步文件和文件夹。
这是我们可以使用Rclone工具执行的一些用法。
复制
要复制文件或者文件夹,我们可以执行rclone copy source:path dest:path命令,如下所示:
$rclone copy /home/arun/Documents/theitroad/gdrive:theitroad
其中我们将/home/arun/Documents /内部的名为theitroad的文件夹复制到名为theitroad的远程服务器的文件夹中。
与复制单个文件类似,我们可以将source:path指向文件,以将文件复制到目标。
注意:它不会从目标位置删除文件。
同步
我们可以使用命令rclone sync source:path dest:path轻松地将源同步到目标:
$rclone sync /home/arun/Documents/theitroad/gdrive:theitroad
其中目录/home/arun/Documents/theitroad /被同步到名为theitroad的远程目录。
注意:它将删除源中不存在于目标中的任何文件。由于这可能会导致数据丢失,因此请首先使用-dry-run标志进行测试。
列表
我们可以查看连接的远程服务器的文件,文件夹列表。
其中我们已经添加了Google云端硬盘并将其连接为远程名称gdrive。
我们将输入以下命令来查看它们。
$rclone ls gdrive:
用大小列出路径中的所有对象。
$rclone lsl gdrive:
列出路径中具有大小和时间戳的所有对象。
$rclone lsd gdrive:
列出路径中的所有目录/对象/存储桶。
创建和删除路径
使用rclone mkdir可以轻松地为远程服务器创建新目录。
我们只需输入以下命令即可在我们的遥控器中创建目录。
其中我们在theitroad中创建了一个名为arun的文件夹,该文件夹以前是不存在的。
$rclone mkdir gdrive:/theitroad/arun
我们可以使用rmdir命令删除一个空目录。
其中我们将删除theitroad父目录下的新创建的文件夹arun。
$rclone rmdir gdrive:/theitroad/arun
现在,如果要删除一个非空目录及其内容,则将使用purge。
其中我们有一个目录数据,其中包含许多文件和文件夹。
$rclone purge gdrive:/theitroad/data
验证路径
现在,要检查和匹配源和目标中的文件,我们将使用check命令。
它比较大小和MD5SUM,并打印不匹配文件的报告。
它不会改变来源或者目的地。
$rclone check /home/arun/theitroad/linux.tar gdrive:/theitroad/linux.tar
如果我们要为路径中的所有对象生成一个md5sum文件,则可以运行rclone指向远程目录的md5sum命令。
该格式与标准md5sum工具生成的格式相同。
$rclone md5sum gdrive:/theitroad/