Rclone-将文件和目录同步到Linux中的云存储

时间:2020-03-05 15:26:19  来源:igfitidea点击:

大家好,今天我们将学习什么是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/