如何使用rsync同步两个目录

Rsync(远程同步)通常用于在Linux / Unix系统中远程以及本地复制和同步文件和目录。
Rsync可用于通过本地和远程网络提取和发送数据。与SCP不同,Rsync并不安全,并且欺骗的风险很高,在使用此命令之前,应始终确保本地和远程位置都安全。

步骤1.使用以下命令检查是否安装了“ rsync”

rsync --version

 

第2步:安装Rsync的(如果跳过这一步“rsync的”已存在) (注:在计算机之间发送数据之前,请确保两个服务器上的本地防火墙具有传入的IP地址列入白名单,以避免被防火墙块。) 的Rsync有许多标记可用于通过网络发送文件,并很好地演示了我们的工程师在执行客户迁移时用于发送大文件的一系列实时示例。 (注意:在跨网络迁移大量数据时,建议使用screen命令启动屏幕会话,否则断开连接会突然终止您的迁移。)示例1:

RPM base OS   yum -y install rsync

Debian / Ubuntu family  apt-get install rsync -y

使用10Mbps传输速率发送目录的全部内容。将X替换为目标IP地址。
“文件”是示例源文件夹,“ / home / new-file”是目标文件夹。

rsync -apW --progress --bwlimit=10000 /file/* root@x.x.x.x:/home/new-file

范例2:

发送文件并显示正在传输的数据量和经过时间的进度条

rsync -pavW --progress /home/file/* root@x.x.x.x.:/home/new-file

范例3:

对于慢速的网络连接,可以使用以下命令。

rsync -pavz --progress /home/file/* root@x.x.x.x.:/home/new-file

 

感兴趣的标志:

-v:详细信息是可选的,以在传输数据时发生错误的情况下显示日志
-a:存档文件以进行数据传输以提高传输速度
-W:该规则被视为整个选项,可用于加快速度而是保持整个文件完整,从而提高传输速度。当双方都没有限制时,这是完美的选择
-z:此选项用于压缩慢速连接的数据
-p:保留权限,如果弯头末端具有相同的所有权和权限,则使用此选项
–progress:显示下载示例4的进度

将文件发送到ssh端口不是端口22的远程计算机上注意:使用此语法发送文件时;您告诉rsync在远程服务器内创建另一个以/ file / file结尾的文件夹。切勿仅使用通配符作为目标路径来结束目标路径。 您无需在迁移数据之前预先创建目标路径,只需执行即可。如果文件不存在,它将创建该文件并将数据移动到新目录。最后更新时间为2018年7月30日

rsync -pavW --progress --inplace --rsh='ssh -p 2244' file/*  root@x.x.x.x:/file

rsync -pavW --progress /home/file/* root@x.x.x.x.:/home/file/*
rsync -pavW --progress /home/file/* root@x.x.x.x.:/home/file

使用rsync在Linux服务器之间同步复制文件

使用rsync在Linux服务器之间同步复制文件

rsync
rsync

无论您是需要在本地复制文件还是将它们传输到远程服务器,都可以使用rsync(文件同步实用程序)来实现。

获取rsync
以下命令为CentOS发行版安装rsync:

sudo yum安装rsync

对于Debian和Ubuntu:

sudo apt-get install rsync

在本地复制文件
要在同一台计算机上复制/ source / to / destination /的内容,请运行:

rsync --archive --verbose --progress / source / / destination /

通过使用–archive选项,我们以递归方式将/ source / contents 复制到/ destination /目录,包括符号链接,权限,修改时间,所有者,组和文件模式数据。该–progress显示传输过程中的进步,–verbose增加冗长。

如果/ destination /目录不存在,则将创建它。如果/ destination /目录已存在且包含/ source /目录不包含的某些文件,则将保留这些文件。

Rsync使用一种算法,通过仅移动已更改的文件部分来最小化流量。
从远程系统复制文件
使用rsync,您可以依靠SSH进行远程数据传输。在开始之前,请确保:

rsync客户端安装在本地和远程计算机上;
您可以使用“ssh user @ remotehost”命令建立与远程计算机的SSH连接。
要从远程服务器传输文件,请指定远程源目录的完整路径,包括远程主机上的用户名,以及本地目录的完整路径:

rsync --archive --verbose --progress user @ remotehost:/ remote / source / / local / destination /

在此示例中,我们将远程主机上/ source /目录的内容复制到执行rsync命令的本地计算机上的/ destination /目录。根据计算机上配置的SSH身份验证方法,执行rsync命令时可能会提示您输入SSH密码或其他凭据。

将文件复制到远程系统
要通过SSH将文件传输到远程服务器,请指定本地源目录的完整路径以及远程目录的完整路径,包括远程主机上的用户名:

rsync --archive --verbose --progress / local / source / user @ remotehost:/ remote / destination /

尾随斜线
指定源目录的路径时,请注意目录名末尾的尾部斜杠 – /符号 – 。尾部斜杠表示“内容”。例如,如果/ source /上有一个尾部斜杠,rsync会将/ source /的内容复制到/ destination /。如果/ source上没有尾部斜杠,rsync将在/ destination /创建一个具有相同名称的目录,并将/ source /的所有内容复制到/ destination / source /。相反,/ destination /上的尾部斜杠没有任何区别。

在rsync的守护进程
如果需要通过专用网络复制大量信息,请考虑设置rsync守护程序。守护进程的使用消除了SSH隧道的开销,但数据未加密传输。

有关如何在守护程序模式下启动rsync的说明,请参阅rsync文档,以及有关rsyncd.conf配置文件的详细信息。

rsync官网:http://rsync.samba.org/