day32课堂笔记

RSYNC复制软件应用与实践


1、什么是rsync

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


2、rsync的作用

工作中需要定时/实时数据备份。本地服务器目录、不同机器、不同机房之间的数据备份,都可以用rsync完后


3、rsync功能特点

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

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

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

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

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

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

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


4、增量复制原理

使用 quick check算法,只对增量的部分复制,根据大小属性的变化进行复制,比对差异后复制,一边比对一边复制


5、rsync三种工作模式

1.本地模式(local)

rsync是一个命令,可以把数据从一个地方复制到另一个地方(仅在一台机器增量),相当于cp

通过加参数实现删除文件和清空文件内容的功能,相当于rm

查看属性信息功能,相当于ls


2.远程shell模式

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

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


语法:

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

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

rsync命令 参数选项 [认证用户]@[主机地址]:[源路径] 本地路径

语法:

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

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

rsync命令 参数选项 本地路径 [认证用户]@[主机地址]:[目标路径]


rsync重点(null 和null/ 区别):

null是目录和目录下的内容,

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


3.守护进程模式***

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

企业运维的重要模式

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


6、rsync命令参数

-v, --verbose 显示输出过程

-z, --compress 压缩

-a, --archive  多参数集合(-rtopgDl)

-r, --recursive 递归

-t, --times    保持修改时间属性

-o, --owner    保持属主不变

-p, --perms    保持权限不变

-g, --group    保持用户组不变

-l, --links    保持拷贝软连接

-q, --quiet    安静的拷贝

--bwlimit=KBPS 限制I/O带宽,KBytes per second。

--delete      删除

--exclude      排除

--exclude-from 从文件中排除

企业常用参数组合:-avz或者-vzrtopg


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

以下操作都是在backup服务器

1. 安装

rsync --version

yum install rsync(不需要)


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


day32课堂笔记_第1张图片

3. 启动和检查

启动:

systemctl start rsyncd

systemctl enable rsyncd

systemctl status rsyncd

检查:

ps -ef|grep sync|grep -v grep  #检查进程

netstat -lntup|grep 873 #检查端口

lsof -i :873 #检查端口


4.配置密码文件

echo "rsync_backup:oldboy" > /etc/rsync.password

chmod 600 /etc/rsync.password


以下操作都是在客户端服务器

5.认证密码文件

方法一

echo "oldboy" > /etc/rsync.password

chmod 600 /etc/rsync.password

方法二 (简单便捷)

echo ' export RSYNC_PASSWORD=oldboy' >>/etc/bashrc

tail -1 /etc/bashrc

. /etc/bashrc

echo $RSYNC_PASSWORD


推 (push) 客户端到服务端

rsync  参数  本地路径  虚拟用户@IP::模块名

拉 (pull)服务端到客户端

rsync  参数  虚拟用户@IP::模块名  本地路径

改完配置要重启服务:systemctl restart rsyncd


6. 测试成果

方法一

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

方法二

rsync -avz /etc [email protected]::backup

你可能感兴趣的:(day32课堂笔记)