rsync服务

一.简介

1、认识
Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。Rsync使用所谓的“Rsync算法”来使本地和远 程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快
Rsync支持大多数的类Unix系统,无论是Linux、Solaris还是BSD上都经过了良好的测试
此外,它在windows平台下也有相应的版本,如cwRsync和Sync2NAS等工具


2、原理
Rsync本来是用于替代rcp的一个工具,目前由rsync.samba.org维护,所以rsync.conf文件的格式类似于samba的主配 置文件;Rsync可以通过rsh或ssh使用,也能以daemon模式去运行
在以daemon方式运行时Rsync server会打开一个873 端口,等待客户端去连接。连接时,Rsync server会检查口令是否相符,若通过口令查核,则可以开始进行文件传输。第一次连通完成时,会把整份文件传输一次,以后则就只需进行增量备份



3、特点
1、可以镜像保存整个目录树和文件系统;
2、可以很容易做到保持原来文件的权限、时间、软硬链接等;
3、无须特殊权限即可安装;
4、优化的流程,文件传输效率高;
5、可以使用rsh、ssh等方式来传输文件,当然也可以通过直接的socket连接;
6、支持匿名传输
7、类似与scp,cp ls rm命令



4、可以实现:
可实现Windows Linux unix 等不同平台的全量及增量的本地或者全程数据同步备份的优秀工具



二.rsync参数:

-H 保留源文件的硬链接文件-r 递归模式,包含目录及子目录的所有信息-z 在传输文件的同时进行压缩-v 显示同步过程的信息-t 保留文件的时间标记-o 保留文件的属主标记-p 保留了文件的权限标记-D 保留了设备文件和一些特殊的文件-S 对零散文件的处理-g 保留了文件的属组信息--version    查看rsync版本

三.rsync特性:

1.支持拷贝普通文件与特殊文件,如:符号链接,块设备,字符设备等
2.支持同步时的排除功能
3.支持保持权限等所有属性拷贝(如 cp -p)
4.支持增量同步,只同步发生变化的数据,传输效率高


四.rsync基本功能:

本地复制文件:
rsync /etc/hosts  /opt/



本地复制目录( -r )
rsync -r /etc   /opt/




删除目录下的文件(需要创建一个/null 的空目录):
rsync -r --delete /null/  /tmp/


null 解释 --- 其实就是让 一个空目录与有文件的目录进行同步. 让有文件的目录与空文件保持同步

这样有文件的目录经过同步也会成为空目录,这就是rsync删除的原理



rsync复制文件到远程服务器:
scp -rp /etc/hosts 10.0.0.4/tmp     ##----需要输入远程服务器的密码




复制目录到远程服务器:
[root@chenleilei ~]# rsync /etc/hosts 10.0.0.4:/tmp
root@10.0.0.4's password:



四.rsync的一些小功能

cp功能:
复制目录:rsync  -r /etc  /tmp复制文件 rsync  -a /etc/hosts  /tmp
scp远程复制功能:
rsync /etc/hosts 10.0.0.4:/tmp
ls功能:
[root@chenleilei ~]# rsync chenleilei/123.txt-rw-r--r-- 0 2018/05/03 21:35:51 123.txt
rm功能(只能删除目录内的所有文件)
1.创建一个空目录 chenleilei 2.rsync --delete -r 123/ chen/

关于这个rm功能的说明: 能做到rm删除的效果仅仅是因额外rsync的同步功能,他会把一个目录
中的内容与另一个目录进行主动同步,使得被同步目录与同步目录保持一致,如果同步的目录为空
那么它被同步的目录也会成为空,当然,如果需要同步的中有一个文件,那么同步成功后主动同步的
目录就会替换掉被同步内容.



五.备份方式:

全量备份
全量备份会对服务器进行整体备份,一般第一次启动rsync的时候会进行一次全量备份
增量备份
增量备份只会对新增或者修改的文件进行备份centos6以后的增量备份原理是:检查源数据与目标数据的差异,检查到有差异的文件立即备份到目标服务器,也就是边比对,边同步



六.提升安全性:

通过soket(进程方式) 传输文件和数据(服务端客户端)  ----重点掌握
使用rcp,rsh,ssh等方式来配合进行隧道加密传输文件(rsync不会对是数据进行加密)
支持匿名或认证(匿名:无需系统用户)的进程模式传输,实现方便安全的进行数据备份



七.企业工作使用场景:

1.利用定时任务+rsync方式进行数据同步[内部员工使用场景]
2.利用实时任务+rsync方式进行数据同步[外部远程使用场景]



八.项目方案: 生产场景常见集群架构备份方案---全网备份方案

借助cron+rsync 把所有客户服务器数据同步到备份服务器全网服务器数据备份解决方案提出和负责实施1.针对中哟啊数据备份混乱,向领导提出全网数据的备份解决方案2.通过本地打包备份,使用 rsync结合 inotify 服务 实现全往数据统一备份到一个固定的服务器然后保存在存储服务器中,并使用脚本检查,并通知管理员备份结果.3.定期将IDC机房的数据备份到公司的内部服务器,防止机房地震及火灾问题导致的数据丢失.

九.rsync的同步方式:

1.本地同步方式:  rsync    选项    源    目标 例子: rsync    -r    /etc    /opt/2.shell远程同步方式:3.常用同步参数 -rp :-r :  递归处理-p:  保留权限root@10.0.0.4: 远程主机用户身份和IP地址4.文件的拉取和推送操作:4.1 拉取远程数据(pull):    rsync -rp root@10.0.0.4:/tmp/hosts    /etc/4.2 推送到远程服务器(push):  rsync -rp /etc/hosts  root@10.0.0.4:/tmp5.目录的拉取推送操作: (/ 和不加 / 的区别是 加/是把目录中内容推送, 不加/ 是推送目录)5.1 推送本地目录到远程/tmp目录下   rsync -rp /etc/sysconfig    root@10.0.0.4:/tmp5.2 拉取远程目录到本地当前目录下   rsync -rp root@10.0.0.3:/tmp/chen .



十.rsync的配置文件 - 配置守护进程 (/etc/rsyncd.conf  守护进程配置文件):

rsync默认配置文件没有被创建,它默认的配置文件存放地:   /etc/rsyncd.conf

#rsync_config 
#created by HQ at 2017 
##rsyncd.conf start## 

uid = rsync         ##用户id
gid = rsync         ##用户组的gid
use chroot = no     ## 安全配置.最好关闭
max connections = 200  ##最大连接数
timeout = 300         ## 超时时间
pid file = /var/run/rsyncd.pid      ##服务运行时的进程pid (查看pid后可以通过kill 杀死)
lock file = /var/run/rsync.lock     ##进程锁文件(超过最大连接后锁定)
log file = /var/log/rsyncd.log     ##程序运行的日志文件
ignore errors  ##忽略错误(避免报错后停止,所以暂时忽略错误继续备份)
read only = false   ##是否只读  force 可读可写
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 = "backup dir by oldboy" 
path = /backup    ##模块保存的目录
#created by chen at2018##rsyncd.conf startuid = rsyncgid = rsyncuse  chroot = onmax connections = 200timeout = 300pid file = /var/run/rsyncd.pidlock file = /var/run/rsync.locklog file =  /var/log/tsyncd.logignore errorshosts allow = 172.16.1.0/24hosts deny = 0.0.0.0/32auth users = rsync_backupsecrets file = /etc/rsync.passwd[backup]comment = "backup dir by chenleilei"path = /backup写入到/etc/rsyncd.conf文件中



十一 .创建用户虚拟用户 rsync

useradd -s /sbin/nologin -M rsync



十二. 创建用户密码文件(安全认证文件)

echo ‘rsync_backup:123456‘ >/etc/rsync.passwdchmod 600  /etc/rsync.passwd   ----给这个权限是不想让除了root之外的其他用户看到



十三 .创建创建备份目录 /backup

mkdir -p /backupchown rsync.rsync /backup

基本配置完成


十四. 启动守护进程

rsync --daemon他有进程信息 通过 ps -ef | grep rsync 查看

十五. 检查守护进程是否启动

[root@oldboyedu-sh01 ~]# ps -ef | grep rsyncroot 2230 2119 0 01:08 pts/0 00:00:00 grep rsync

有就代表启动完成了,自此esync服务就配置完成了

©著作权归作者所有:来自51CTO博客作者妙手折花的原创作品,如需转载,请注明出处,否则将追究法律责任