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' oldboy@10.1.1.1:~
  以守护进程(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/rsync.password 用户名:密码 rsync虚拟用户名:rsync虚拟用户密码
chmod 600 /etc/rsyncd.password 为了安全,让别人看不到 4、关闭防火墙和selinux #####客户端
5、导入密码文件,只放密码不放用户名
echo "oldboy" >/etc/rsync.password
chmod 600 /etc/rsync.password 6、备份
rsync -avz rsync_backup@192.168.222.140::oldboy /data 此时没有使用密码文件
这个是模块名 rsync -avz rsync_backup@192.168.222.140::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/ rsync_backup@192.168.222.140::oldboy --password-file=/etc/rsync.password 推送文件,排除a
排除多个文件
  rsync -avz --exclude={a,b} /data/ rsync_backup@192.168.222.140::oldboy --password-file=/etc/rsync.password 推送文件,排除a,b
  rsync -avz --exclude={a..g} /data/ rsync_backup@192.168.222.140::oldboy --password-file=/etc/rsync.password 排除a到g
通过自己定义文件来排除
[root@weiwei ~]# seq 10>paichu.log
rsync -avz --exclude-from=paichu.log /data/ rsync_backup@192.168.222.140::oldboy --password-file=/etc/rsync.password 通过文件排除

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

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

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

rsync高级同步的更多相关文章

  1. rsync高级同步工具

    1.什么是rsync rsync 是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据同步备份的优秀工具,rsync软件使用于 unix/linux/windows等多种操作系统平台. 2 ...

  2. Rsync文件同步

    Rsync文件同步 本章结构 关于rsync 1.一款增量备份工具,remote sync,远程同步,支持本地复制或者与其他SSH.rsync主机同步,官方网站:http://rsync.samba. ...

  3. 真正的inotify+rsync实时同步 彻底告别同步慢

    真正的inotify+rsync实时同步 彻底告别同步慢       http://www.ttlsa.com/web/let-infotify-rsync-fast/     背景 我们公司在用in ...

  4. rsync命令(同步/备份数据)

    rsync命令rsync命令是一个远程数据同步工具,可通过 lam/wan快速同步多台主机间的文件.rsync使用所谓的 "rsync算法"来使用本地和远程两个主机之间的文件达到同 ...

  5. Linux实战教学笔记21:Rsync数据同步工具

    第二十一节 Rsync数据同步工具 标签(空格分隔): Linux实战教学笔记-陈思齐 ---本教学笔记是本人学习和工作生涯中的摘记整理而成,此为初稿(尚有诸多不完善之处),为原创作品,允许转载,转载 ...

  6. 架设rsync服务器同步数据

    什么是rsync rsync 是一个快速增量文件传输工具,它可以用于在同一主机备份内部的备分,我们还可以把它作为不同主机网络备份工具之用.本文主要讲述的是如何自架rsync服 务器,以实现文件传输.备 ...

  7. linux rsync实时同步

    rsync同步 同步与复制的差异:复制:完全拷贝源到目标同步:增量拷贝,只传输变化过的数据 同步操作:remote sync 远程同步支持本地复制,或与其他ssh,rsync主机同步.官方网站:htt ...

  8. Rsync数据同步工具

                                        Rsync数据同步工具 什么是Rsync? Rsync是一款开源的.快速的.多功能的,可以实现全量及增量的本地或原程数据同步备份 ...

  9. Rsync数据同步服务

    Rsync数据同步服务 Rsync软件适用与unix/linux/windows等多种操作系统平台 Rsync是一款开源的,快速的,多功能的,可实现全量及增量的本地或远程数据同步备份的优秀工具,可以实 ...

随机推荐

  1. 新版期货数据交换(FTD)协议报文分析

    因为需要开发模拟CTP后台服务,实现一键切换CTP,所以我们需要分析CTP报文.(基于FTD协议2004版改进)   网上公开的只能找到04年老版本,和现前报文格式出入较大.参考:http://www ...

  2. centos yum安装及手动编译ettercap

    眼下流行的软件包有二种形式 ,一种是以rpm包,deb包为代表的智能安装包.还有一种是以file.tar.gz形式的压缩 一 智能安装 以 mysql为例 yum search mysqld 二 手动 ...

  3. 用node.js进行微信公众平台的开发

    基本原理 用nodejs怎样来实现对微信公众平台的开发呢? 别的就不多说了,先来简单介绍微信公众平台的基本原理. 微信服务器就相当于一个转发服务器,终端(手机.Pad等)发起请求至微信服务器,微信服务 ...

  4. MonoTouch

    本文为2012年4月19日Xamarin研讨会OLO在线咨询高级软件工程师Greg Shackles的一份的演讲资料. 本文为2012年4月19日Xamarin研讨会OLO在线咨询高级软件工程师Gre ...

  5. python爬取网站数据保存使用的方法

    这篇文章主要介绍了使用Python从网上爬取特定属性数据保存的方法,其中解决了编码问题和如何使用正则匹配数据的方法,详情看下文     编码问题因为涉及到中文,所以必然地涉及到了编码的问题,这一次借这 ...

  6. Openstack(Kilo)安装系列之nova(七)

    控制节点 Before you install and configure the Compute service, you must create a database, service crede ...

  7. Xcode The operation couldn’t be completed. (NSURLErrorDomain error -1012.)

    使用Xcode SVN 出现问题 The operation couldn’t be completed. (NSURLErrorDomain error -1012.) 解决方法: 打开终端 然后输 ...

  8. ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]

    今天第一次遇到Failed to start component [StandardEngine[Catalina].StandardHost[localhost].错误,并且在错误提示的后半段出现了 ...

  9. 一个Demo展示Storyboard的强大

    本文转载至http://www.cocoachina.com/ios/20150330/11440.html 今天我通过完成一个长按cell删除的Demo,向你们展示熟练运用storyboard和Au ...

  10. PhoneGap 获得设备属性Demo

    <!DOCTYPE html> <html> <head> <title>设备属性Demo</title> <script type= ...