rsync高级同步

rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份工具。适用于unix/linux/windows等多种操作系统平台。

两台机器拷贝数据
scp,nfs(linux之间),sftp,http,samba(linux与windows之间),rsync,drbd(基于文件系统同步)

1、rsync特性:

  支持拷贝特殊文件如链接文件,设备等。
  可以有排除指定文件或目录同步的功能,相当于打包命令tar的排除功能。
  可以做到保持原文件或目录的权限、时间、软硬链接、属主、组等所有属性均不改变-p。
  可以实现增量同步,既只同步发生变化的数据,因此数据传输效率很高,tar。
  可以使用rcp,rsh,ssh等方式来配合传输文件(rsync本身不对数据加密)。
  可以通过socket(进程方式)传输文件和数据(服务端和客户端)。
  支持匿名或认证(无需系统用户)的进程模式传输,可实现方便安全的进行数据备份及镜像。

2、工作场景:

  两个服务器之间的备份(定时备份)
  把所有客户服务器数据同步到备份服务器(定时备份)
  rsync结合inotify的功能做实时的数据同步 (实时备份)

3、工作方式:

  单个主机本地之间的数据传输(此时类似于cp命令的功能) rsync -avz /etc/hosts .
  借助rcp,ssh等通道来传输数据(此时类似于scp命令的功能) rsync -avz /etc/hosts -e ‘ssh -p 52113‘ [email protected]:~
  以守护进程(socket)的方式传输数据(这个是rsync自身的重要的功能)

4、以守护进程方式传输

####服务端
1、以守护进程的方式启动
rsync --daemon

2、创建共享目录,并授权
mkdir -p /oldboy
useradd rsync -s /sbin/nologin   系统的虚拟用户
chown -R rsync.rsync oldboy

3、导入用户和密码
echo "rsync_backup:oldboy" >/etc/rsyncd.password     用户名:密码   rsync虚拟用户名:rsync虚拟用户密码
chmod 600 /etc/rsyncd.password     为了安全,让别人看不到

4、关闭防火墙和selinux

#####客户端
5、导入密码文件,只放密码不放用户名
echo "oldboy" >/etc/rsync.password
chmod 600 /etc/rsync.password 

6、备份
rsync -avz [email protected]::oldboy /data    此时没有使用密码文件
					这个是模块名

 rsync -avz [email protected]::oldboy /data --password-file=/etc/rsync.password   使用密码文件就可以不用输密码了

rsyncd.conf

##rsyncd.conf start##
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/rsyncd.log
[oldboy]                   	类似于NFS的共享目录,这是一个模块,,,,SRC
path = /oldboy/
ignore errors
read only = false
list = false
hosts allow = 192.168.222.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup      虚拟用户,不是系统用户
secrets file = /etc/rsync.password     虚拟用户的对应密码文件
#rsync_config_______________end

  

########################扩展

排除单个文件,客户端
  rsync -avz --exclude=a /data/ [email protected]::oldboy --password-file=/etc/rsync.password 推送文件,排除a
排除多个文件
  rsync -avz --exclude={a,b} /data/ [email protected]::oldboy --password-file=/etc/rsync.password 推送文件,排除a,b
  rsync -avz --exclude={a..g} /data/ [email protected]::oldboy --password-file=/etc/rsync.password 排除a到g
通过自己定义文件来排除
[[email protected] ~]# seq 10>paichu.log
rsync -avz --exclude-from=paichu.log /data/ [email protected]::oldboy --password-file=/etc/rsync.password 通过文件排除

服务端也可以控制,但是不灵活,所以一般不要再服务端配
在配置文件里面
exclude=a b test/oldboy.txt

#########################

无差异同步,客户端
--delete
如果客户端没有数据,备份到服务器,服务器也丢了,客户端也没有,所以备份时,客户端与服务器必须一样,风险很大,如果操作不当会将备份服务器给全删了
不管是服务端还是客户端如果要无差异同步,必须要两端一样
推送:本地有啥,服务端有啥,本地没有的服务端有也要删除。rsync -avz --delete /data/ [email protected]::oldboy --password-file=/etc/rsync.password
拉取:远端有啥,客户端有啥,远端没有的本地有也要删除。rsync -avz --delete [email protected]::oldboy /tmp --password-file=/etc/rsync.password

一般是有需要两台服务器之间,必须要求数据一致,且实时性又不是很高的情况,如两台负载均衡下面web服务器之间的同步,或者高可用双击配置之间的同步等,rsync无差异同步非常的危险,如果生产环境没有特殊的需求,应避免使用。

############################

参考文档:
http://rsync.samba.org/
man rsync
man rsyncd.conf
http://www.samba.org/ftp/rsync/rsync.html
http://www.samba.org/ftp/rsync/rsyncd.conf.html

时间: 2024-10-01 07:51:30

rsync高级同步的相关文章

rsync高级同步工具基础及实战

drdb 基于文件系统同步 rsync 开源的多功能的.可实现全量.增量的本地或远程的数据同步工具.默认不加密,还可以删除,具备scp.cp.rm. inotify实时增量备份,企业一般是rsync+inotify或rsync+sersync.虽然rsync可以增量备份,但企业一般不会采用这个功能,原因在于增量备份时会有比对,特别有业务的情况下,不能这样做会占用大量资源. rsync 默认参数-avz   -r --delete  /目录后要带斜线,rsync区别与带不带/.一般都带代表只包括目

搭建中小规模集群之rsync数据同步备份

NFS重要问题 1.有关NFS客户端普通用户写NFS的问题. 1)为什么要普通用户写NFS. 2)exports加all_squash. Rsync介绍 什么是Rsync? Rsync是一款开源的.快速的.多功能的.可实现全量即增量的本地或远程数据同步备份的优秀工具.Rsync软件适用于unix.linux.windows等多种操作系统平台. Rsync简介 Rsync英文全称Remote synchronization.从软件的名称就可以看出来,Rsync具有可使本地和远程两台主机之间的数据快

Linux rsync数据同步命令解析

rsync命令 rsync有六种不同的工作模式: 1)拷贝本地文件.当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式. rsync -a /data /backup 2)使用一个远程shell程序(如rsh.ssh)来实现将本地机器的内容拷贝到远程机器.当DST路径地址包含单个冒号":"分隔符时启动该模式. rsync -avz *.c foo:src 3)使用一个远程shell程序(如rsh.ssh)来实现将远程机器的内容拷贝到本地机器.

sersync+rsync实时同步配置案例

目前业内比较靠谱的同步解决方案有: rsync+inotify-tools,Openduckbill+inotify-tools和rsync+sersync 前两者由于是基于脚本语言编写,所以规范程度,执行效率相对rsync+sersync就稍微弱一些. sersync是使用c++编写,基于boost1.43.0,inotify api,rsync command开发,主要用于服务器同步,web镜像等功能.其对linux系统文件系统产生的临时文件和重复的文件操作能够进行过滤,所以在结合rsync

linux rsync实时同步

rsync同步 同步与复制的差异:复制:完全拷贝源到目标同步:增量拷贝,只传输变化过的数据 同步操作:remote sync 远程同步支持本地复制,或与其他ssh,rsync主机同步.官方网站:http://rsync.samba.org/ 命令用法rsync [选项] 源目录 目标目录常用选项:-a:归档模式,相当于-rlptgiD-v:显示同步过程详细信息 -z:传输过程中启用压缩 -r:递归,包括目录/子目录及所有文件-l:保留符号链接文件-p,-t:保留文件的权限,时间标记-o,-g:保

Rsync文件同步

本章结构 关于rsync 1.一款增量备份工具,remote sync,远程同步,支持本地复制或者与其他SSH.rsync主机同步,官方网站:http://rsync.samba.org/. Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件,也可以使用rsync同步本地硬盘中的不同目录. Rsync是用户取代rcp的一个工具,Rsync使用所谓的"Rsync算法"来使本地和远程两个主机之间的文件达到同步,这个算法只传

Rsync数据同步工具应用指南

1.Rsync数据同步工具应用指南 简介Rsync的特性:Rsync的工作方式:Rsync命令同步选项参数:本地主机模式示例远程RPC模式示例 简介     Rsync是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据同步备份的优秀工具.可使本地和远程两台或多台主机之间的数据快速复制同步镜像.远程备份的功能.这个功能类似ssh自带的scp命令,但又优于scp命令的功能,scp每次都是全量拷贝,而rsync可以增量拷贝.当然,Rsync还可以在本地主机的不同分区或目录之间全量及增量的

rsync 精确同步文件用法 (转载)

-- include-from 指定目录下的部分目录的方法: include.txt: aa bb ss Command: rsync -aSz  --include-from=/home/include.txt --exclude=/* /home/mnt/data/upload/f/ [email protected]:/mnt/data/upload/f/ --exclude-from 排除目录下的部分目录的方法: exclude.txt: cc dd Command: rsync  -a

rsync+inotify同步备份MYSQL数据

rsync+inotify同步备份MYSQL数据 rsync具有安全性高.备份迅速.支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,但是rsync不能实时的去监测.同步数据.inotify 是一种强大的.细粒度的.异步的文件系统事件监控机制,通过inotify可以监控文件系统中添加.删除,修改.移动等各种细微事件. 实验环境:备份端192.168.1.123(rsync server) 备份源192.168.124(rsync client inotify mysql)