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
[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功能:
[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: 保留权限 [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 查看
十五. 检查守护进程是否启动
[root@oldboyedu-sh01 ~]# ps -ef | grep rsync root 2230 2119 0 01:08 pts/0 00:00:00 grep rsync
有就代表启动完成了,自此esync服务就配置完成了