目录
1.Rsync简介:
(1)rsync是Linux/Unix下的一个远程数据同步工具。它可以通过LAN/WAN快速同步多台主机间的文件和目录,并适当利用rsync算法(差分编码)以减少数据的传输。rsync算法并不是每一次都整份传输,而是只传输两个文件的不同部分,因此传输速度相当快。
(2)rsync能同步更新两处计算机的文件与目录,并适当利用差分编码以减少数据传输量。rsync可以拷贝/显示目录内容,以及拷贝文件,并可选压缩以及递归拷贝。
(3)在常驻模式(daemon mode)下,rsync默认监听TCP端口873,以原生rsync传输协议或者通过远程 shell 如RSH或者SSH提供文件。SSH模式下,rsync客户端运行程序必须同时在本地和远程机器上安装。
2.Rsync的工作原理:
(1),客户端构造Filelist,Filelist包含了需要与服务器同步的所有文件信息对name→id(id用来唯一标识文件)
(2)客户端将Filelist发送到服务器。
(3)服务器上rsync处理客户端发过来的Filelist,构建新的NewFilelist。其中根据MD5值比较,删除服务器上以及存在的文件信息时,只保留服务器上不存在或变化的文件。
(4)客户端得到服务器发送过来的NewFilelist,然后把NewFilelist,然后把NewFilelist中的文件重新传输到服务器。
3.Rsync安装
yum install rsync
4.rsync认证方式:
rsync有两种常用的认证方式,一种是rsync-daemon方式,另一种是ssh方式。在平时使用过程,使用最多的是rsync-daemon方式
注意:在使用rsync时,服务器和客户端都必须安装rsync程序
(1)rsync-daemon认证:rsync在rsync-daemon认证方式下,默认监听TCP的873端口。并且也只有在此种模式下,rsync才可以把密码写入到一个文件中。
注意:rsync-daemon认证方式,需要服务器和客户端都安装rsync服务,并且只需要rsync服务器端启动rsync,同时配置rsync配置文件。客户端启不启动rsync服务,都不影响同步的正常运行。
(2)ssh认证:rsync在ssh认证方式下,可通过系统用户进行认证,即在rsync上通过ssh隧道进行传输,类似于scp工具。此时的同步操作不在局限于rsync中定义的同步文件夹。
注意:ssh认证方式,不需要服务器和客户端配置rsync配置文件,只需要双方都安装rsync服务,并且也不需要双方启动rsync服务。
若rsync服务端SSH为标准端口,此时rsync使用方式如下:
演示:
[root@ssh ~]# rsync -avz /tmp/rsync_test/passwd 192.168.137.133:/tmp
[email protected]'s password:
sending incremental file list
passwd
sent 431 bytes received 35 bytes 103.56 bytes/sec
total size is 798 speedup is 1.71
验证:对应的服务器:
[root@work ~]# ll /tmp/
total 4
-rw-r--r--. 1 root root 798 Nov 10 2022 passwd
[root@work ~]#
若rsync服务端SSH为非标准端口,可通过rsync的-e参数进行端口指定:
rsync -avz 源文件 -e 'ssh -p1234' 用户名@服务器IP:目标地址
5.rsync命令参数:
OPTIONS选项 | 功能 |
-a | 这是归档模式,表示递归方式传输文件,并保持所有属性, 它等同于 -r,-l,-p,-t,-g,-o,-D合起来的选项。 -a选项后面可以跟一个 --no-OPTION,表示关闭-r,-l,-p,-t,-g,-o,-D中的某一个。 比如 -a---no-l 等同于-r -p -t -g -o -D 选项 |
-r | 表示递归模式处理子目录,它主要是针对目录来说的,如果单独传一个文件则不需要加-r选项,但是在传输目录的时候必须添加。 |
-v | 表示打印一些信息,比如文件列表,文件数量等。 |
-l | 表示保留软链接 |
-p | 表示保持文件权限 |
-o | 表示保留文件属主信息 |
-g | 表示保持文件 |