使用 rsync 从远程服务器同步文件

使用 rsync 从远程服务器同步文件

我有一个关于 rsync 的问题。我有两台服务器。我想在服务器 1 上运行 rsync 命令,将服务器 2 上的所有数据/文件同步到我的服务器。假设我在服务器 2 上有一个文件夹 /var/www/html/hello/* 所有文件都应使用从服务器 2 到服务器 1 的权限同步,但该命令必须在服务器 1 上执行。如何使用 rsync 执行此操作?

答案1

rsync -ai user2@server2:/var/www/html/hello/ local/directory/hello

这将使用 SSH 以server2用户身份连接user2。该用户必须有权访问将复制的所有文件和目录。的目录内容/var/www/html/hello/将被复制local/directory/hello到本地计算机上。

/请注意源目录路径的尾随。如果没有这个,您将把文件和目录放入hello目标文件夹中调用的目录中。

如果添加--delete,您还需要删除目标目录中源端不可用的本地文件。

-i选项会打开正在传输的物品的详细列表。有些人喜欢使用-v而不是-i.该-a选项是保留尽可能多的权限和其他元数据的选项,并且还启用子目录中文件的递归复制。

答案2

rsync 的行为就像一个简单的复制程序。因此,从远程同步就像(没有资源或权限等附加选项......)

rsync remoteuser@remoteserver:/var/www/html/hello/* /to/local/folder/

这会将远程文件(而不是文件夹)复制到本地文件夹。

使用选项-avz归档一种备份(包括权限等):

rsync -avz remoteSource localDestination

有关更多选项,请参阅手册页...

编辑1:

*请考虑 kusalananda 关于使用源文件夹中的尾部的第一条评论。

相关内容