rsync服务搭建

1、什么是rsync服务?

rsync全称是remote sync,是Unix或类Unix一款数据镜像软件,可以实现差异备份

2、rsync的作用

工作中需要定时或实时对数据进行备份。

通过rsync可以实现增量备份;

配合计划任务,rsync可以实现定时或间隔时间数据同步;

配合inotify,可以实现触发式的实时同步

应用场景:数据库备份的数据同步到异地,文件的同步等

3、简单实现原理说明:
    1、假设待传输文件A,如果目标路径下不存在A,则rsync会直接传输A;如果目标路径下存在A,就会比较源文件和目标文件的差异性,把差异性传输给目标端文件,实现文件的同步
          注意:rsync的增量传输体现在2个维度:
    3.1 文件级的增量传输:文件不存在则直接传输该文件
    3.2 数据块级的增量传输;只传输两文件间不同的那一部分数据
         2.实现算法原理建议参见 :https://www.cnblogs.com/f-ck-need-u/p/7226781.html

4、3、同步说明
    文件同步,就要有同步基准,rsync可以实现如下的同步:
    3.1 目标文件和本地文件同步,以本地文件为基准,也就是将本地文件推送到目标机器
    3.2 本地文件和目标文件同步,以目标文件为基准,也就是将目标文件下载到本地
    3.3 目标和本地文件互相同步,即保持2端文件的一致性,互相作为基准实现

5、rsync的三种工作方式
  5.1 本地文件系统实现同步。
    语法格式:rsync [option]     src dest
  5.2 通过远程shell实现
    pull:  rsync [option] user@host:src dest
    push:  rsync [option] src user@host:dest
  5.3 通过rsync进程
    pull:    rsync [option] user@host::src dest
    push:   rsync [option] src user@host::dest

6、 搭建rsync服务器
 

#先确定是否安装rsync
rpm -qa |grep rsync

#未安装则通过yum源安装 
yum install rsync  -y

  rsync配置文件说明

  

  rsync主要分为三个配置文件
    1、 /etc/rsyncd.conf  主配置文件
    2、 /etc/rsyncd.secrets  密码文件,用户存放用户和密码
    3、/etc/rsyncd.motd        服务信息文件

编辑主配置文件 /etc/rsyncd.conf
#设置服务器信息提示文件名称,在该文件中编写提示信息
motd file = /etc/rsyncd.motd
#是否开启传输日志功能
transfer logging = yes
#日志文件路径
log file = /var/run/rsyncd.log
#服务进程pid文件
pid file = /var/run/rsyncd.pid
#设置锁文件
lock file = /var/run/rsyncd.lock
#定义服务端口
port 873
#定义侦听地址
adress 192.168.161.70
#设置进行数据传输时所用的用户uid和组gid
uid = nobody
gid = nobody
use chroot = no
#设置客户端只能可读
read only = yes
#设置最大的并发连接数
max connections = 10
[common]
	comment = rsync for common dir
	path = /common
	#忽略一些IO错误
	ignore errors
	#认证用户
	auth users = tom,jerry
	#认证用户的密码文件
	secrets file = /etc/rsyncd.secrets
	#允许访问的地址段
	hosts allow = 192.168.161.0/24
	#拒绝访问的地址(除开允许的外)
	host deny = *
	客户二段请求显示模块列表时,本模块名称是否显示
	list = false


a . 编辑密码文件

#编辑密码文件
vim /etc/rsyncd.secrets
tom:123456
jerry:123456




#修改密码文件权限,必须为600,否则会报错
chmod 600 /etc/rsyncd.secrets

b.编辑提示信息文件

echo "hello,this is rsync" >> /etc/rsyncd.motd

c.防火墙设置以及服务启动

#防火墙设置
	firewall-cmd --permanent --add-port=873/tcp
	firewall-cmd --reload
#重新启动服务
	rsync --daemon
#设置服务开机自启
	echo "/usr/bin/rsync --daemon" >> /etc/rc.local

#验证服务是否启动(可以确认进程或确定端口,端口正常为修改为873)
ps -ef |grep rsync  
netstat -tunpl |grep rsync

d. rsync参数选项说明

-v         显示rsync过程中的详细信息
-P         显示 文件的传输进度
-n         仅测试,而不实际传输,一般配合-vvv查看rsync是如何工作的
-a         归档模式,表示递归传输并保持文件的属性
-t         保持mtime属性,建议任何时间都加上该选项
-o         保持owner属性
-g         保持gid属性
-p         保持文件的权限
-z         传输过程进行压缩,加快传输速率
-D         拷贝特殊文件和设备文件
-size-only 默认算法是检查文件大小和文件的mtime,使用此选项只检查文件的大小
--exclude  排除不需要的文件,类似于tar中的exclude选项
-u update	仅在源mtime比目标已存在文件的mtime新时才拷贝。注意,该选项是接收端判断的,不会影响删除行为。
-d dir	    以不递归的方式拷贝目录本身(其中的文件不做拷贝)
--max-size	限制rsync传输的最大文件大小
--min-size	显示rsync的传输的最小文件大小,用于禁止传输小文件或那些垃圾文件
--delete	以src为主,对dest进行同步,多则删,少则补
-b backup	对目标已经不能再的文件做一个备份
-W whole-file	rsync将不再使用增量传输,而是全量传输
--existing    要求只更新目标端已存在的文件,目标端还不存在的文件不传输。注意,使用相对路径时如果上层目录不存在也不会传输。
--ignore-existing 要求只更新目标端不存在的文件。和"--existing"结合使用有特殊功能

注意事项:

1、使用rsync一定要注意的一点是,源路径如果是一个目录的话,带上尾随斜线和不带尾随斜线是不一样的,不带尾随斜线表示的是整个目录包括目录本身,带上尾随斜线表示的是目录中的文件,不包括目录本身

2、服务端的rsync的密码文件权限必须为600
       3、服务端rsync的服务运行者和密码文件secret user 的拥有者必须为同一个用户
       4、如果是以--password-file=file的方式附带密码,确保客户端密码文件格式无误,与服务端不同,客户端的不用加上用户名

案例:客户端请求服务端并做同步

  

rsync -avz tom@192.168.161.70::test --password-file=/etc/rsync.secrets /commom/
[root@client common]# rsync -avz tom@192.168.161.70::test --password-file=/etc/rsync.secrets /commom
hello, this is rsync

receiving incremental file list
created directory /commom
./
aa.html.bak
curl-7.43.0.tar.gz
diff_01.py
diff_02.py
dns_a.py
file_name
filecmp_01.py
lxm_mail.py
mem.py
net.py
web_check.py

sent 236 bytes  received 4,319,732 bytes  8,639,936.00 bytes/sec
total size is 4,342,460  speedup is 1.01

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值