rsync服务

Posted 陈雷雷

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 ##----需要输入远程服务器的密码


复制目录到远程服务器:
[[email protected] ~]# rsync /etc/hosts 10.0.0.4:/tmp
[email protected]‘s password:

四.rsync的一些小功能

cp功能:
复制目录:
rsync  -r /etc  /tmp

复制文件 
rsync  -a /etc/hosts  /tmp   
scp远程复制功能:
rsync /etc/hosts 10.0.0.4:/tmp
ls功能:
[[email protected] ~]# 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:  保留权限
[email protected]: 远程主机用户身份和IP地址

4.文件的拉取和推送操作:
4.1 拉取远程数据(pull):    rsync -rp [email protected]:/tmp/hosts    /etc/
4.2 推送到远程服务器(push):  rsync -rp /etc/hosts  [email protected]:/tmp

5.目录的拉取推送操作: (/ 和不加 / 的区别是 加/是把目录中内容推送, 不加/ 是推送目录)
5.1 推送本地目录到远程/tmp目录下   rsync -rp /etc/sysconfig    [email protected]:/tmp
5.2 拉取远程目录到本地当前目录下   rsync -rp [email protected]:/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 start
uid = rsync
gid = rsync
use  chroot = on
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file =  /var/log/tsyncd.log
ignore errors
hosts allow = 172.16.1.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets 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.passwd
chmod 600  /etc/rsync.passwd   ----给这个权限是不想让除了root之外的其他用户看到

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

mkdir -p /backup
chown rsync.rsync /backup

基本配置完成

十四. 启动守护进程

rsync --daemon

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

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

[[email protected] ~]# ps -ef | grep rsync
root 2230 2119 0 01:08 pts/0 00:00:00 grep rsync

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

以上是关于rsync服务的主要内容,如果未能解决你的问题,请参考以下文章

Rsync

rsync实现数据同步

Rsync:非常实用的同步文件命令。

rsync

rsync nfs 实时同步,结合实战

双台服务器rsync同步报错(code 5) at main.c(1503) [sender=3.0.6]