Day32-集群第一阶段-中小规模集群架构-rsync

一、什么是rsync?

rsync:remote synchronization

rsync是开源、高速、可实现本都及远程,全量以及增量的数据复制(拷贝)工具。

官方链接资料:http://www.samba.org/ftp/rsync/rsync.html

二、全量和增量区别

1、全量复制

[root@nfs01 ~]# cp -a /etc/ /opt/

[root@nfs01 ~]# \cp -a /etc/ /opt

[root@nfs01 ~]# touch /etc/oldboy.txt

[root@nfs01 ~]# \cp -a /etc/ /opt/

2、增量复制:

只复制 ldboy.txt

三、rsync的作用

        工作中需要数据备份。

需要本地服务器目录、不同机器、不同机房之间的数据备份,都可以rsync完成。

四、rsync功能特性

1、支持拷贝普通文件与特殊文件,如链接文件、设备文件等。

2、支持排除指定文件或目录同步功能,相当于打包命令tar的排除功能。

3、可以做到保持原文件或目录的权限、时间、软硬连接、属主/组等所有属性均不改变。

4、可实现增量复制,即只复制发生变化的数据,因此数据传输效率很高。

5、可以使用rcp,rsh,ssh等方式来配合进行隧道加密输出文件,(rsync本身不对数据加密)。

6、可以通过scoket(进程方式)传输文件和数据(服务端和客户端)。

7、支持匿名或认证(无需系统用户)进程模式传输,安全的进行数据备份及镜像。

五、增量复制原理

使用quick check算法,只对增量的部分复制,根据大小属性的变化进行复制。

2.x比对差异后复制,3.x一边比对一边复制。

六、rsync三种工作模式

1、本地 local

rsync 就是一个命令

语法:  rsync   参数选项    源文件或目录   目的目录或文件

参数:

 -v --verbose 详细模式输出,传输时的进度等信息

-z --compress 传输时进行压缩以提高传输效率,--compress-level=NMU 可按级别压缩,局域网可以不用压缩。

-a --archive 归档模式,表示以递归方式传输文件,并表示文件的属性,-a = -rtopgDl

-r --recursive 递归拷贝目录

-l --links 保留软连接

-p --perm 保持文件权限

-t --times 保持文件时间信息(修改时间)

-g --group 保持文件属组信息

-o --owner 保持文件属主信息

-e --rsh=COMMAND 指定要执行的远程shell命令,

-R --relative 保留相对路径信息

-H --hard-links 保留硬链接

-q --quiet 以精简模式输出

--bwlmit=KBPS 限制I/O带宽,KB/S

--delete 删除

--exclude 排除

--exclude-from 从文件中排除

企业中常用参数组合:-azv或者-vztopg

1)把数据从一个地方复制到另一个地方(仅在一台机器增量),相当于cp。

2)通过加参数实现删除的功能,相当于rm命令。

删除文件内容

删除目录

3)查看属性信息功能,相当于ls-l

2、远程shell模式

借助类似ssh隧道传输数据,适合不同的机器之间的复制。

异地拷贝,相当于scp,区别scp是远程全量拷贝。

pull:拉:从远端拉取到本地。

语法:      rsync   参数选项   认证用户@主机地址:源路径     本地路径

rsync -avz -e "ssh -p 22" [email protected]:/opt/hosts /opt

-e        指定通道

ssh      shh服务连接客户端

-p 22   指定端口为22

push:推:从本地推到远端。

语法:     rsync    参数选项  本地路径   认证用户@主机地址:目标路径

推拉:

1)参照物,执行命令的机器

2)[email protected]  使用的用户和主机,就用主机和用户的密码

强调:只适合rsync

null和null/的区别:

null 是目录和目录下的内容

null/只表示目录下的内容,不含本身

3、rsync守护进程模式*****

首先要搭建rsync服务端(要有守护进程),然后才能在客户端实现推拉数据。

企业运维的重要模式。

rsync服务模式:开启后台进程,接收别人访问。*****

七、rsync参数

 -v --verbose 详细模式输出,传输是的进度等信息

-z --compress 传输时进行压缩以提高传输效率,--compress-level=NMU 可按级别压缩,局域网可以不用压缩。

-a --archive 归档模式,表示以递归方式传输文件,并表示文件的属性,-a = -rtopgDl

-r --recursive 递归拷贝目录

-l --links 保留软连接

-p --perm 保持文件权限

-t --times 保持文件时间信息(修改时间)

-g --group 保持文件属组信息

-o --owner 保持文件属主信息

-e --rsh=COMMAND 指定要执行的远程shell命令,

-R --relative 保留相对路径信息

-H --hard-links 保留硬链接

-q --quiet 以精简模式输出

--bwlmit=KBPS 限制I/O带宽,KB/S

--delete 删除

--exclude 排除

--exclude-from 从文件中排除

企业中常用参数组合:-azv或者-vztopg

八、rsync守护进程模式应用实践*****

1、以下操作都是在backup服务器上

1)安装rsync

yum install rsync -y

rsync --version  查看版本号

2)配置 配置文件 /etc/rsyncd.conf

操作前先备份: cp /etc/rsyncd.conf{,.ori}

cat>/etc/rsyncd.conf<

#rsync_config_______________start

#created by oldboy

#site: http://www.oldboyedu.com

uid = rsync                                 ===>管理备份目录的用户

gid = rsync                                 ===>管理备份目录的用户组

use chroot = no                          ===>安全功能,数据是否锁定到备份目录

max connections = 200              ===>并发连接,同时最多多少客户端访问

timeout = 600                             ===>超时时间

pid file = /var/run/rsyncd.pid       ===>进程号所在文件

lock file = /var/run/rsync.lock      ===>锁文件

log file = /var/log/rsyncd.log    ===>日志文件,查看报错等

ignore errors                               ===>忽略错误                   

read only = false                         ===>可写

list = false                                   ===>不允许列表

hosts allow = 172.16.1.0/24       ===>允许哪些主机访问

hosts deny = 0.0.0.0/32             ===>不允许哪些主机访问

auth users = rsync_backup       ===>远程虚拟连接用户

secrets file = /etc/rsync.password===>存放密码的文件,格式:用户名:密码,权限必须为:600

[backup]                                    ===>模块名,远程访问,使用模块名访问

comment = welcome to oldboyedu backup!   ===>说明注释

path = /backup/                         ===>服务端用户备份的目录,用户和组,                                                             rsync:rsync

EOF

创建用户rsync

3)启动和检查

rsync --daemon(C6及以前)

systemctl status rsync 查看状态

systemctl start rsync 开启服务

systemctl enable rsync 开机自启

检查进程

检查端口

4)配置密码文件

到此为止服务器端配置完成。

2、以下操作是在客户端服务器完成

rsync客户端nfs配置完成

3、守护进程模式,客户端rsync的命令语法

配置服务器端守护进程,实现数据传输:

1)服务器端守护进程 

2)客户端执行命令

pull:拉 从远端拉取到本地

语法:  rsync   参数选项   虚拟用户@主机地址::模块名      本地路径

             rsync  参数选项   rsync://虚拟用户@主机地址/模块名    本地路径

push:推 从本地推送到远端

语法:  rsync  参数选项  本地路径   虚拟用户@主机地址::模块名

            rsync  参数选项  本地路径   rsync://虚拟用户@主机地址/模块名

4、测试结果

rsync -avz /etc/hosts [email protected]::backup --password-file=/etc/rsync.password

你可能感兴趣的:(Day32-集群第一阶段-中小规模集群架构-rsync)