sersync2 实时同步配置

简介:

在同步服务器上开启sersync,将监控路径中的文件同步到目标服务器,因此需要在同步服务器配置sersync,在同步目标服务器配置rsync。

一、同步目标服务器配置rsync

 
  1. # rpm -qa |grep rsync 
  2. rsync-2.6.8-3.1 
  3. # rpm -e rsync-2.6.8-3.1

unistall系统自带安装的rsync,安装3.0版的rsync

 
  1. # wget -c http://rsync.samba.org/ftp/rsync/rsync-3.0.8.tar.gz 
  2. # tar xf rsync-3.0.8.tar.gz
  3. # ./configure --prefix=/usr && make && make install
  4. # vi /etc/rsyncd.conf

添加下面的代码到rsyncd.conf中

 
  1. uid = nobody 
  2. gid = nobody 
  3. use chroot = no 
  4. strict modes = yes 
  5. max connections = 200 
  6. pid file = /var/run/rsyncd.pid 
  7. lock file = /var/run/rsync.lock 
  8. log file = /var/log/rsyncd.log 
  9.  
  10. [test] 
  11. path = /home/
  12. comment = test 
  13. read only = no 
  14. write only = no 
  15. ignore errors = yes 
  16. list = yes 
  17. uid = root 
  18. gid = root 

启动rsync服务

 
  1. # rsync --daemon 

二、配置sersync2

sersync2是金山逍遥网技术支持部平台组周洋童鞋,开发的一款基于 inotify + rsync 的大量文件的多服务器自动同步程序,目前已开源,开源协议为 New BSD License,项目的下载地址:

 
  1. http://code.google.com/p/sersync/ 

这个配置超简单的,下载文件,解压即可

 
  1. # wget -c http://sersync.googlecode.com/files/sersync2.5_64bit_binary_stable_final.tar.gz 
  2. # tar xf sersync2.5_64bit_binary_stable_final.tar.gz 
  3. # cd GNU-Linux-x86 
  4. # mkdir /etc/sersync2 
  5. # cp confxml.xml /etc/sersync2 
  6. # cp sersync2 /usr/bin 

配置sersync2

 
  1. <sersync> 
  2.         <localpath watch="/data/bb"> 
  3.             <remote ip="192.168.1.4" name="test"/> 
  4.             <remote ip="192.168.1.6" name="test"/> 
  5.             <!--<remote ip="192.168.8.40" name="tongbu"/>--> 
  6.         </localpath> 
  7.         <rsync> 
  8.             <commonParams params="-artuz"/> 
  9.             <auth start="false" users="root" passwordfile="/etc/rsync.pas"/> 
  10.             <userDefinedPort start="false" port="874"/><!-- port=874 --> 
  11.             <timeout start="false" time="100"/><!-- timeout=100 --> 
  12.             <ssh start="false"/> 
  13.         </rsync> 
  14.         <failLog path="/var/log/rsync_fail.log" timeToExecute="60"/><!--default every 60mins execute once--> 
  15.         <crontab start="false" schedule="600"><!--600mins--> 
  16.             <crontabfilter start="false"> 
  17.                 <exclude expression="*.php"></exclude> 
  18.                 <exclude expression="info/*"></exclude> 
  19.             </crontabfilter> 
  20.         </crontab> 
  21.         <plugin start="false" name="command"/> 
  22.     </sersync> 

表明要将同步服务器上本地的/data/bb 路径下的文件,同步到远程服务器 192.168.1.4 与 192.168.1.6上的test 模块下

接下来,运行sersync2 

#  sersync2 -r -o /etc/sersync2/confxml.xml

-r的意义

 
  1. -r 在开启实时监控之前对同步服务器目录与远程目标机目录进行一次整体同步 

运行完了输出

 
  1. set the system param 
  2. execute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches 
  3. execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events 
  4. parse the command param 
  5. option: -r      rsync all the local files to the remote servers before the sersync work 
  6. option: -d      run as a daemon 
  7. option: -o      config xml name:  /etc/sersync2/confxml.xml 
  8. daemon thread num: 10 
  9. parse xml config file 
  10. host ip : localhost     host port: 8008 
  11. daemon start,sersync run behind the console 
  12. config xml parse success 
  13. please set /etc/rsyncd.conf max connections=0 Manually 
  14. sersync working thread 112  = 1(primary thread) + 1(fail retry thread) + 10(daemon sub threads) 
  15. Max threads numbers is: 32 = 12(Thread pool nums) + 20(Sub threads) 
  16. please according your cpu ,use -n param to adjust the cpu rate 
  17. ------------------------------------------ 
  18. rsync the directory recursivly to the remote servers once 
  19. working please wait... 
  20. execute command: cd /data/bb && rsync -artuz -R --delete ./ 192.168.1.4::test >/dev/null 2>&1 
  21. run the sersync: 
  22. watch path is: /data/bb 

sersync2的参数

 
  1. sersync2 -h 
  2. set the system param 
  3. execute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches 
  4. execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events 
  5. parse the command param 
  6. _______________________________________________________ 
  7. 参数-d:启用守护进程模式 
  8. 参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍 
  9. c参数-n: 指定开启守护线程的数量,默认为10个 
  10. 参数-o:指定配置文件,默认使用confxml.xml文件 
  11. 参数-m:单独启用其他模块,使用 -m refreshCDN 开启刷新CDN模块 
  12. 参数-m:单独启用其他模块,使用 -m socket 开启socket模块 
  13. 参数-m:单独启用其他模块,使用 -m http 开启http模块 
  14. 不加-m参数,则默认执行同步程序 
  15. ________________________________________________________________ 

索性一次性运行

 
  1. #  sersync2 -r -d -o /etc/sersync2/confxml.xml

其他功能待研究中



本文转自dongfang_09859 51CTO博客,原文链接:http://blog.51cto.com/hellosa/586164,如需转载请自行联系原作者

相关文章
|
4月前
|
监控 Unix Shell
Rsync+Inotify 实现数据同步
【8月更文挑战第25天】Rsync是一款适用于UNIX和类UNIX系统的高效数据备份工具,支持本地与远程数据复制。通过识别数据变更实现增量备份,减少网络传输量,提升效率。利用SSH加密保障数据安全,服务器负责定义源数据,客户端按需同步,确保双端一致性,常用端口为TCP-873。
63 3
|
存储 监控 安全
|
存储
实时同步lsyncd
实时同步lsyncd实时同步lsyncd 1 lsyncd 1.1 lsyncd 简介Lsyncd使用文件系统事件接口(inotify或fsevents)来监视对本地文件和目录的更改。Lsyncd将这些事件整理几秒钟,然后生成一个或多个进程以将更改同步到远程文件系统。
1146 0
|
存储 监控 Shell
实时同步sersync
实时同步sersync1 实时同步 1.1 实时同步原理存储服务器数据实时同步到备份服务器 1.2 什么是实时同步实时同步是一种只要当前目录触发事件,就马上同步到远程的目录。 1.3 为什么要实时同步保证数据的连续性减少人力成本 1.4 实时工具的选择inotify+rsyncsersync+rsynclsyncdInotify是一个通知接口,用来监控文件系统的各种变化,如果文件存取,删除,移动。
1270 0
|
监控 数据安全/隐私保护 Linux
rsync+Inotifywait实现文件实时同步
rsync+Inotifywait实现实时同步 背景: 某客户想实现实现异地灾备,想达到的是A机房出现断电的时候。数据能实时的将数据同步到B上,并且域名切换到B之后能提供业务 。使用rsync+inotify做web数据和ftp(ftp主要是用户上传的图片文件)的数据实时同步. 一:软件介绍: rsyncrsync是一个开源的快速备份工具,可以再不同主机之间镜像同步整个目录树,支持增量备份,保持链接和权限,且采用优化的同步算法,再传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。
2210 0
|
监控 网络协议 网络安全
rynsc +sersync实时数据同步
转载:https://www.cnblogs.com/liangml/p/5959571.html 一.为什么要用Rsync+sersync架构 1.sersync是基于Inotify开发的,类似于Inotify-tools的工具 2.sersync可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或某一个目录的名字,然后使用rsync同步的时候,只同步发生变化的这个文件或者这个目录。
1326 0
|
XML 监控 数据格式
|
Linux 网络安全