如何使用Rsync在两台戴尔服务器之间传输文件

成都戴尔服务器总代理 156 2023-05-26 https://server1919.cn/

作为系统管理员或普通Linux用户,有时您需要在两台服务器或两个 Linux 桌面系统之间传输文件。成都戴尔服务器总代理最常用的方法是FTP或SCP。

成都戴尔服务器总代理

成都戴尔服务器经销商

但是,如果您不想使用这两个工具怎么办?

然后Rsync是要走的路。这个工具比你想象的更强大。这篇文章将为您提供有关如何使用 Rsync 在两个服务器之间传输文件和目录的详细指南。

1、什么是 Rsync?

Rsync 是一个命令行实用程序,可用于在两个 Linux 系统或目录之间同步文件。您可以在本地或远程使用此命令。

简而言之,您可以使用 Rsync 在两个系统之间移动文件而无需 FTP。此工具使用默认的 SSH 端口。但是,您可以使用各种可用选项指定端口,正如您将在本文中了解到的那样。

2、cp / scp 和 rsync 有什么区别?

这个问题本身可能是一个完整的话题。但为了让一切都简洁明了——CP 命令复制文件,默认情况下,它确保文件和目录具有唯一的完整路径名。这与跨两个系统安全复制文件的 SCP 命令的情况相同。

SCP 是 CP 命令的更高级版本。

另一方面,rsync 命令同步文件和目录。

这里的术语同步意味着如果file_A在Server-One上有一个,您可以使用 Rsync 在Server_Two上创建该文件的副本。如果file_A在Server-One上更新了,下次运行 Rsync 命令时,它只会将更改更新到Server-Two上。

这与CP将再次复制整个文件的命令不同。

该Rsync命令在执行增量传输或复制时非常有用——例如,进行系统备份。它还可以节省带宽和时间。

该SCP命令最适合在系统之间传输小文件。

3、先决条件

两台 Linux 服务器已启动并正在运行。您可以使用 VMware、VirtualBox 或Quickemu等虚拟化软件将它们安装为虚拟机。

发送文件的服务器应该可以访问其他服务器的 SSH 端口。

根访问权限。

4、基本 Rsync 语法。

这篇文章将使用术语推和拉来使事情简单明了,并帮助您更快地理解 Rsync。

推送是您将文件从服务器 A 发送到服务器 B 的地方。

拉取是指您从远程服务器获取文件。

在使用 Rsync 进行推送(将文件传输到远程服务器)时,您将使用以下语法。

rsync [-options] SOURCE user@x.x.x.x:DESTINATION

使用 Rsync 进行拉取时使用以下语法(将文件从远程服务器获取到本地服务器)。

rsync [-options] user@x.x.x.x:SOURCE DESTINATION

SOURCE:这是指您要传输的文件或目录的路径。

[-options]:这是指您可以与 Rsync 命令一起使用的所有参数。

DESTINATION:这是指文件将存储在接收服务器上的位置。

user@x.x.x.x:这是接收服务器的用户名和 IP 地址。

5、使用 Rsync 同步同一系统上的目录。

启动终端并使用mkdir命令创建两个目录 –Dir_One和Dir_Two.

mkdir Dir_One Dir_Two

使用 touch 命令在内部创建几个虚拟文件Dir_One。

touch Dir_One/file{1..10}

当您运行 ls 命令时,Dir_One您将看到创建的所有文件。然而,Dir_Two依旧是空的。要同步到的内容Dir_One,Dir_Two您将使用下面的 Rsync 命令语法。

rsync -r Dir_One/ Dir_Two

这里我们使用了-r选项,这意味着我们正在递归地复制文件。或者,您也可以使用代表“存档”-a的选项。 此选项以递归方式同步文件并保留其他功能,如符号链接、修改时间、组、所有者和用户权限。

注意:上面的命令/后面有一个斜杠。Dir_One后面这个斜杠很重要,因为它指定我们正在复制目录内的文件,而不是整个目录本身。

当您在Dir_Two上运行ls命令时,您将注意到它具有与Dir_One相同的文件。

6、将文件从一台服务器传输(推送)到另一台服务器

我们准备了两个服务器设置,Johndoe服务器和Alexdoe服务器。我们将使用以下语法将文件从Johndoe服务器发送到Alexserver。

rsync [-options] SOURCE user@x.x.x.x:DESTINATION

首先,使用以下命令创建一个要发送的虚拟文件。

touch file_One

接下来,使用下面的命令将此文件传输到第二台服务器。

注意:您会看到一个提示,要求您输入“接收服务器”的用户密码。

rsync file_One alexdoe@192.168.1.45:/home/alexdoe

现在,当您在第二台服务器 ( Alexdoe) 上运行 ls 命令时,您将在其主目录中看到您传输的文件。

这非常简单,因为我们只处理一个文件。-a在一个目录中传输多个文件时,您将需要使用该选项。让我们看一个简单的例子。

创建一个名为的目录Dir_One并在此文件夹中创建几个虚拟文件。您可以运行以下命令。

mkdir Dir_One

touch Dir_One/file{1..100}

要将这些文件复制到其他服务器 ( Alexdoe),您将使用以下命令。请注意该-a选项。

rsync -a Dir_One/ alexdoe@192.168.1.45:/home/alexdoe

当您在接收服务器上运行ls命令时,应该会看到类似下图的输出。已成功复制文件。

处理大量文件时,最好采取预防措施,避免复制错误的项目或错误的目标位置。其中一种方法是使用-n选项执行干式运行。您可以包括的另一个选项是-v或“verbose”,它向您显示终端上发生的情况。

注意:试运行仅显示将要发生的情况。它不会传输/复制任何文件。

要试运行我们上面复制的文件,我们将使用下面的命令。

rsync -anv Dir_One/ alexdoe@192.168.1.45:/home/alexdoe

您可以看到将要传输的所有文件,包括总字节数。此方法(试运行)使您能够验证和确认将传输的内容。

在上面的一段中,您了解了尾部斜线 ( /) 的重要性。让我们在不添加斜杠( /) 的情况下进行试运行。

在不添加斜杠 ( /) 的情况下,您可以在上图中看到您会将整个目录传输到您的其他服务器。

7、从远程服务器获取(拉取)文件

到目前为止,您已经了解了如何将文件发送到远程服务器。如果您想从远程服务器获取(拉取)文件怎么办?您只需要调整 Rsync语法,如下所示。

rsync user@x.x.x.x:SOURCE DESTINATION

假设有一个TextFile_One在Alexdoe服务器上调用的文件,我们希望将其传输到我们的Johndoe服务器。您将使用以下语法。

rsync -av alexdoe@192.168.1.45:/home/alexdoe/TextFile_One /home/johndoe/

您可以看到命令中添加了两个选项,包括-v允许我们查看幕后发生情况的选项。

假设您在另一台服务器上有一个目录Test_Directory,其中包含多个文件。要获取此目录,您将使用以下命令。请注意,我们添加了该-r选项并删除了目录名称后的尾部斜杠。

8、Rsync命令提示和技巧

现在您已经很好地了解了如何使用 Rsync 命令在两个服务器之间传输文件,让我们看看一些会派上用场的提示和技巧。

Rsync -d 选项

要使用 Rsync 实用程序仅传输不包含其内容的目录,您将需要使用该-d选项。另外,不要在目录名后添加尾部斜杠。例如,要拉取Test_Directory从其他服务调用的目录,您可以使用以下命令。

rsync -d alexdoe@192.168.1.45:/home/alexdoe/Test_Directory /home/johndoe

Rsync -t 选项

Rsync-t选项使您能够复制文件上次修改的日期和时间。在处理定期审核的文件时,此选项非常有用。

使用 Rsync 的特定端口

默认情况下,Rsync 使用专用的 SSH 端口(端口 22)。但是,如果您更改了此端口或设置了在特定端口上运行的 Rsync 守护程序,则需要使用该-e选项在命令中指定端口。

要执行推送操作,请使用以下语法。

rsync [options] -e ssh -p PORT SOURCE user@x.x.x.x:DESTINATION

例如,

rsync [options] -e ‘ssh -p 22’ SOURCE user@x.x.x.x:DESTINATION

要执行拉动操作,请使用以下语法。

rsync [options] -e ssh -p PORT user@x.x.x.x:SOURCE DESTINATION

例如,

rsync [options] -e ssh -p 22 user@x.x.x.x:SOURCE DESTINATION

总结

这篇文章为您提供了在系统上使用 Rsync 命令的综合指南。需要注意的是,rsync仅用于传输文件和目录。您不能使用它来移动服务和包。为此,您需要手动安装它们。

成都戴尔服务器总代理


【公司名称】成都鸿盛广达科技有限公司

【代理级别】成都戴尔服务器总代理

【销售经理】成都鸿盛广达科技有限公司

【联系方式】座机:028-85952921 手机:13981931555

【公司地址】成都市武侯区人民南路四段一号时代数码广场A座17楼