Rsync day32

rsync 复制软件应用与实践

what 什么是?

why 为什么要用(作用)?

where 在哪儿用?

how 如何用?

1、rsync( 英文全称Rmote synchronization rsync)

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

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

1.1.1 rsync监听端口

873

1.1.2 rsync运行模式

C/S    客户端/服务端

B/S    浏览器/服务端

1.1.3    rsync备份方式

全量备份

将客户端所有的数据内容全都备份到服务端

增量备份

将客户端数据内容(不包含已备份到服务端的内容)增量备份到服务端

1.2 Rsync传输方式及应用场景

1.2.1    上传(推)

所有主机推送本地数据至Rsync备份服务器,会导致数据同步缓慢(适合少量数据备份)

机器量不是很多的时候,可以使用推送

1.2.2    下载(拉)

rsync备份服务端拉取所有主机上的数据,会导致备份服务器开销大。

机器量很大的时候,推和拉协同使用

2、全量备份和增量备份的区别

全量复制举例:

[root@web01 ~]# cp -a /etc/ /opt/  复制全部内容

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

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

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

增量复制:(默认就是增量)

只复制发生变化的内容

3、rsync的作用

    工作中都需要数据备份(定时、实时)。这个备份可能是不同机器、不同机房之间的数据备份。都可以由rsync来完成。

4、rsync功能(特性)

Rsync day32_第1张图片

5、增量复制原理

Rsync day32_第2张图片
Rsync day32_第3张图片

6、rsync三种工作模式

1)本地(local,单个主机之间的数据传输,类似于cp命令)

在本地模式下,rsync就是一个命令。

rsync    [OPTION...]    SRC...    [DEST]

命令      参数选项   [源目录或文件]    [本地目标目录或文件]

命令操作:

rsync命令

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

b. 通过加参数可以实现删除和清空功能,相当于rm命令。

c. 还拥有查看属性信息的功能,相当于ls。

实践:

Rsync day32_第4张图片
这就相当于cp命令

(注意:用rsync复制后,时间属性会发生变化。)

保持属性: -zrtopg

Rsync day32_第5张图片


b. 删除实践:rsync -r -delete 让后面的和前面的内容保持一致

Rsync day32_第6张图片

c. 删除所有文件:

注意一个重点:rsync

null和null/区别,

null是目录本身和目录下的内容

null/只是目录下的内容,不含本身。

Rsync day32_第7张图片

查看文件或目录属性:

(2)远程Shell模式(通过远程shell模式访问,实现跨主机访问操作)

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

语法:(两种模式)

(1)pull,拉:从远端拉取到本地(下载)。

rsync    [OPTION……]    [USER@] HOST:SRC……    [DEST]

命令         参数选项        [目标主机的用户] @ [目标主机IP地址或域名]:[目标主机源文件]    [下载到本地哪个位置]

pull实践:

Rsync day32_第8张图片


(2)push,推:从本地推到远端(上传)。(不能推目录)

rsync    [OPTION...]    SRC...    [USER@]HOST:DEST

命令      参数选项    本地源文件    目标主机用户名@目标主机IP或域名:目标对应位置

push实践:

Rsync day32_第9张图片

远程方式存在的缺陷:

1.需要使用系统用户(不安全)

2.使用普通用户(权限存在问题)

3.需要走ssh协议


(3)rsync守护进程模式(服务,持续在后台运行)

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

    这是企业运维的重要模式,重点讲。

    客户端语法暂时不讲。

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

Access via rsync daemon:    守护进程方式传输

rsync [OPTION...] [USER@]HOST::SRC... [DEST]

命令    参数选项    远程主机用户(虚拟用户)@远程主机地址::    远程主机模块(不是目录)    将远程主机数据备份至本地的什么位置。

举例:

拉取rsync备份服务器的backup模块数据至本地/mnt目录

Rsync day32_第10张图片

[root@nfs01 ~]# rsync -avz [email protected]::backup/ /mnt/

将本地/mnt目录推送至rsync备份服务器的backup模块

[root@nfs01 ~]# rsync -avz /mnt [email protected]::backup/

Rsync day32_第11张图片

7、rsync命令参数:企业常用参数组合:-avz或-vzrtopg

Rsync day32_第12张图片
Rsync day32_第13张图片

8、(核心)rsync守护进程模式应用实践

Rsync day32_第14张图片
Rsync day32_第15张图片
Rsync day32_第16张图片

步骤:以下操作都是在backup机器上 操作 :

1)安装

如果没有,用yum安装,yum -y install rsync

2)备份,并且编辑配置文件

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

fake super = yes

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

[backup]

comment = welcome to oldboyedu backup!

path = /backup/

EOF


配置文件详解:

Rsync day32_第17张图片

如何 了解 知识的源头 :

man  rsync 查命令的参数

man rsyncd.conf  查配置参数 

(2)创建rsync用户

useradd -M -s /sbin/nologin rsync

创建备份目录并授权rsync用户为属主

mkdir /backup

chown -R rsync.rsync /backup/ 


(3)启动和检查

rsync --daemon (C6及以前)

systemctl start  rsyncd

systemctl enable  rsyncd

systemctl status  rsyncd

检查进程:

ps -ef | grep sync|grep -v grep

检查端口:

netstat -lntup|grep 873


(4)配置密码文件

[root@backup ~]# echo "rsync_backup:123" > /etc/rsync.password

[root@backup ~]# chmod 600 /etc/rsync.password

[root@backup ~]# cat /etc/rsync.password

rsync_backup:123

[root@backup ~]# ll /etc/rsync.password

-rw------- 1 root root 17 Apr 15 19:22 /etc/rsync.password

Rsync day32_第18张图片
到此 ,服务端配置完成


(2)以下操作在客户端服务器:(以下方法2选一)

方法1:认证密码文件

客户端默认是没有密码文件的

方法2:

Rsync day32_第19张图片
到这为止,客户端配置 完成

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

同样跟服务端一样有推拉操作。

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

1、服务器端守护进程 2、客户端执行命令


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

语法1:(常用)

rsync  [OPTION...] [USER@] HOST::SRC...  [DEST]

rsync  参数选项  虚拟用户@主机IP::模块名 目的路径 


语法2:

rsync  [OPTION...] rsync://[USER@] HOST::SRC...  [DEST]

rsync  参数选项  rsync://虚拟用户@主机IP::模块名 目的路径 


push,推:从本地推到远端

语法1:(常用)

rsync [OPTION...] [DEST] [USER@]HOST::SRC...

rsync命令 参数选项 目的路径    [虚拟用户]@[主机地址]::[模块名]


语法2:

rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST

rsync命令 参数选项    目的路径    rsync://[虚拟用户]@[主机地址]/[模块名] 

(4)测试成果:

(1)把nfs01客户端服务器上的hosts文件上传到服务端的backup模块中。

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

Rsync day32_第20张图片


rsync常见故障

1、服务未开启

systemctl start rsyncd

netstat -lntup  查看端口

2、防火墙和SElinux没关

3、密码输入错误

4、命令格式错误

5、密码文件权限错误,必须为600,。

6、rsyncd.conf配置错误

7、备份目录属主错误。


最终总结

Rsync day32_第21张图片






.

你可能感兴趣的:(Rsync day32)