怎样使用 Rsync

介绍

远程同步,或 rsync 命令用于在机器、主机、远程 shell 或以上的组合之间传输和同步文件和目录。 这是一个强大的实用程序,如果您使用 Linux,您应该了解它。 我们将在这里介绍 rsync 命令的基础知识。 虽然本文使用的是 Ubuntu 20.04,但您可以在其他 Linux 发行版上使用相同的命令。

是什么让 rsync 如此特别?

rsync 命令在接收和发送文件时使用压缩和解压缩,这意味着它将消耗非常少的带宽。 Rsync 仅更新源和目标之间的差异,因为它使用远程更新协议。 它还支持所有者、组、链接、权限和设备。

怎样安装rsync?

大多数 Linux 发行版都安装了 rsync。 如果您没有,请在您的 Ubuntu 系统上使用以下命令:

sudo apt-get install rsync

rsync 语法

本节将简要回顾 rsync 语法。

本地到本地传输或同步

rsync {选项} {源} {目的地}

本地到远程传输或同步

rsync {选项} {来源} {[email protected]:目的地}

远程到本地传输或同步

rsync {选项} {[email protected]:destination} {目的地}

source 是源目录

Destination 是目标目录

option 是 rsync 命令选项

用户是远程用户名

Host 是 IP 或远程主机名

怎样使用 rsync

在本地复制文件

要在本地复制文件,请使用:

rsync –a {filename} {destination}

怎样使用 Rsync 1

在上述 example,我们正在复制“源码.zip” 从我们当前的目录到 Documents。

您可以通过列出 Documents 中的所有文件和目录来检查文件是否被复制,使用:

ls

怎样使用 Rsync 2

如你看到的, ”源码.zip”存在于文档目录中。

如果您不为目标中的文件添加名称,它将复制与源文件相同的名称。 要更改目标文件的名称,请使用:

rsync –a {filename} {destination/filename}

在里面 example 下面,我们将复制“源码.zip” 再次,但这一次,将其重命名为“目的地.zip”。

怎样使用 Rsync 3

目的地.zip” 已复制到 Documents 目录,如下图所示。

怎样使用 Rsync 4

将目录的内容复制到目标

您可以使用以下命令将源目录的内容复制到目标。

rsync –av {source}/ {destination}

怎样使用 Rsync 5

上图显示了内容“资源” 目录被复制到“目的地“ 目录。

将整个目录复制到目标

如果您只想将目录的内容复制到目标,请使用:

rsync –av {source} {destination}

怎样使用 Rsync 6

以上 example 复制“资源” 目录及其内容到“目的地“ 目录。

显示进度

要查看进度,请使用:

rsync –rv –progress {source} {destination}

怎样使用 Rsync 7

忽略文件

如果要忽略某些文件,请使用:

rsync -vr --exclude '{condition}' {source} {destination}

这 ”资源”目录下有以下文件:

怎样使用 Rsync 8

在里面 example 下面,我们将忽略以“s”。

怎样使用 Rsync 9

如图所示,只有“文件”被复制。

列出文件和目录

rsync 可用于列出源的内容。

rsync {filename}

怎样使用 Rsync 10

上面的命令列出了 Documents 目录的内容。

将文件从本地复制到远程计算机

要将文件移动到远程机器,您需要安装 openssh-server。 为此的命令是:

sudo apt update
sudo apt install openssh-server

怎样使用 Rsync 11

怎样使用 Rsync 12

安装完成后,您可以使用以下命令移动文件或目录。

rsync –a {source} {remote [email protected] IP:/destination}

您将被要求输入远程机器的密码。

在里面 example 下面,我们将移动“文档”到远程主目录。

怎样使用 Rsync 13

使用 ls,我们可以看到“文档”已经搬到这里了。

怎样使用 Rsync 14

将文件从远程复制到本地计算机

您将使用与上述相同的命令 example.

rsync –a {remote source} {local [email protected] IP:/destination}

在这个 example我们将搬家”远程srcdoc” 从远程机器到本地机器。

怎样使用 Rsync 15

使用 ls,我们可以看到“
远程srcdoc
”已经搬到这里了。

怎样使用 Rsync 16

将当前日期添加到目标文件

您可以使用以下命令将日期添加到目标文件或目录的名称中:

rsync -av /home/test/Desktop/Linux /home/test/Desktop/rsync$(date +\%Y-\%m)

在里面 example 下面,我们将移动“源码.zip”到桌面,将其命名为目的地,然后添加日期。

怎样使用 Rsync 17

怎样使用 Rsync 18

查看源文件和目标文件之间的差异
下面的命令可用于查看源文件和目标文件之间的差异。

rsync –avzi {source}/ {destination}/

怎样使用 Rsync 19

下图显示文件,“甜甜圈“ 和 ”你好.txt” 不在目标目录中。

参数“F” 表示文件。 其他参数包括:

t:时间戳的变化

d:目的地变化

s:文件大小的变化

传输文件时限制带宽

要在传输文件时限制带宽,请使用:

rsync -vr --bwlimit=1000 {source}/* {destination}

在里面 example 下面,我们将带宽限制为 1000kB。

怎样使用 Rsync 20

更多关于 rsync

要查看更多关于 rsync 的可用选项,请使用:

rsync –help

怎样使用 Rsync 21

我们介绍了 rsync 命令的一些基础知识,我们了解了怎样在本地和远程传输和同步文件。

如果您想使用 scp 命令同步文件,请访问此处。