Rsync 数据同步工具
1、概念
Rsync是一款开源的,快速的,多功能的,可实现全量及增量的本地或者远程数据同步备份的优秀工具。可用于多台服务器之间进行数据同步或者数据迁移。rsync软件适用于Unix/linux/windows等多种操作系统平台。
利用rsync,可以实现删除文件和目录的功能,相当于rm命令。
2、特性
·支持拷贝特殊文件和链接文件,设备等
·可以有排除(tar?find?)指定文件或目录同步的功能,相当于打包命令tar的排除功能
·可以做到保持文件或木目录的权限,时间,软硬链接,属主,组等属性均不改变-p
·可以实现增量同步,既只同步发生变化的数据,因此数据传输效率很高(tar -N)
·可以使用rcp,rsh,ssh等方式来配合传输文件
·可以通过socket(进程方式)传输文件和数据(服务端和客户端)
·支持匿名的或认证(无需系统用户)的进程模式传输,可实现方便安全的进行数据备份及镜像
3、rsync的企业工作场景说明
可以让两台服务器之间数据同步(定时任务+备份数据)即crond+rsync
4、raync的工作方式
(1)本地建类似cp命令的复制方式
/etc/hosts 系统映射文件
数据同步,相当于cp,但是cp全覆盖同步;rsync增量同步,只是把不一样的同步。
参数:-avz(脚本里可以不写V)
-a 归档模式,表示以递归方式传输文件, 并保持所有文件属性
-v 输出详细信息
-z 传输时进行压缩以提高传输效率
-P 保持各种属性都不变
--delete 让源目录和目标目录数据完全一致(实时同步)
--bwlimit 限速参数,不能让其一下占满网速(--bwlimit=100)
(2)网络间两台不同IP服务器间数据传输(scp)
类似scp,远程复制,但是rsync还是增量的。
scp /etc/hosts root@192.168.200.76:/root/
保证能够支持ssh远程通道连接(有无scp命令)
/etc/ssh/sshd_config 远程连接配置文件
-e ‘ssh -p 22’表示通过ssh通道传输数据,如果是22端口,不需要指定
如果不修改端口,默认是22端口,如果修改,不能是1000以下的端口
(3)多组服务器之间,以socket进程监听的方式启动rsync server端(不需要目标路径)
客户端在推数据的时候做了两件事:
①告诉server端,朝哪个模块推
②需要进行虚拟账号的验证
(创建密码文件;chmod 600密码文件)
所有的所谓的服务都是程序,程序就有配置文件,运维通过修改配置文件来达到影响程序运行的目的
/etc/rsyncd.conf(配置文件通常放在/etc目录下,rsync软件名+d变成服务名)
部署服务器端rsync服务:
step1:
确认软件是否安装:
rmp -qa rsync
step2:
创建/etc/rsyncd.conf文件,vim编辑
uid = rsync #用户
gid = rsync #组
use chroot = no #程序安全设置
max connections = 200 #客户端最大连接数
timeout = 300 #超时时间
pid file = /var/run/rsyncd.pid #进程号文件位置
lock file = /var/run/rsync.lock #进程锁
log file = /var/log/rsync.d/log #日志文件位置
#################################
[backup]
path = /backup/ #使用目录
ignore = errors #有错误时忽略
read only = false #可读可写
list =false #阻止远程列表(不让通过远程方式看服务端有啥)
hosts allow = 192.168.204.0/24 #允许IP
hosts deny = 0.0.0.0/32 #禁止IP
auth users = rsync_backup #虚拟用户
secret file = /etc/rsync.password #存放用户和密码的文件
step3:
创建共享目录及添加rsync程序用户
step4:
将服务器上的/backup文件夹更改属主rsync
step5:
启动服务
step6:
创建rsync虚拟账户名和密码
step7:
将账户密码文件的权限设置为600
step8:
改配置文件,就要重启进程。如何重启rsync服务?
pkill rsync #关闭rsync服务
rsync --daemon #启动rsync服务
可能出现问题:
service iptables stop
setenforce 0
5、rsync企业应用风险
--delete
执行--delete参数从rsync服务器端往rsync客户端拉取数据时,一定要小心,最好不用,它比从rsync客户端带--delete参数往rsync服务端推送危险的多。客户端带--delete参数往服务端推送仅删除服务端模块下的数据,而前者有能力删除rsync客户端本地的所有数据包括跟下的所有目录。
6、rsync优缺点
rsync优点:
(1)增量备份,支持socket(daemon),集中备份(支持推拉,都是以客户端为参照物)
(2)远程SHELL通道模式还可以加密(SSH)传输,socket(daemon)需要加密传输,可以利用vpn服务或ipsec服务二店
rsync缺点:
(1)大量小文件同属同步的时候,比对时间较长,有的时候,同步过程中,rsync进程可能会停止,僵死了
(2)同步大文件,10G这样的大文件有时也会出现问题,中断。未完整同步前,都是隐藏文件,可以通过续传(--partial)等参数实现传输
(3)一次性远程拷贝可以用scp,大量小文件要打成一个包再拷贝