服务器同步

Sersync服务器同步

单向,即只能从一主机写入,同步到另一主机。

系统环境: RHEL6 x86_64

主服务器:server1 192.168.2.68

目标服务器:station1 192.168.2.27

条件:iptables关,selinux关

软件下载:http://code.google.com/p/sersync/

sersync主要用于服务器同步,web镜像等功能。基于boost1.43.0,inotify api,rsync command.开发。目前使用的比较多的同步解决方案是inotify-tools+rsync ,另外一个是google开源项目Openduckbill(依赖于inotify- tools),这两个都是基于脚本语言编写的。相比较上面两个项目,本项目优点是:

● sersync是使用c++编写,而且对linux系统文 件系统产生的临时文件和重复的文件操作进行过滤(详细见附录,这个过滤脚本程序没有实现),所以在结合rsync同步的时候,节省了运行时耗和网络资源。 因此更快。

●相比较上面两个项目,sersync配置起来很简单,其中bin目录下 已经有基本上静态编译的2进制文件,配合bin目录下的xml配置文件直接使用即可。

●另外本项目相比较其他脚本开源项目,使用多线程进行同步,尤其在同步较大文件时,能够保证多个服务器实时保持同步状 态。

●本项目有出错处理机制,通过失败队列对出错的文件重新同步,如果仍旧失败,则 每10个小时对同步失败的文件重新同步。

●本项目自带crontab功能,只需在 xml配置文件中开启,即可按您的要求,隔一段时间整体同步一次。无需再额外配置crontab功能。

●本项目socket与http插件扩展,满足您二次开发的需要。

1. 配置同步目标服务器rsync

yum install rsync -y

在目标服务器上配置如下:

vi /etc/rsyncd.conf

uid=root

gid=root

max connections=36000

use chroot=no

log file=/var/log/rsyncd.log

pid file=/var/run/rsyncd.pid

lock file=/var/run/rsyncd.lock

[rsync]

path=/opt/rsync

comment = test files

ignore errors = yes

read only = no

hosts allow = 192.168.2.68

hosts deny = *

只允许主服务器server1访问,同步模块名为[rsync],/opt/rsync为文件同步目录。

rsync --daemon

#后台运行rsync

使用xinetd管理rsync服务

yum install xinetd -y

chkconfig rsync on

service xinetd restart

2. 在主服务器上安装配置sresync

yum install rsync -y

tar zxf sersync2.5_64bit_binary_stable_final.tar.gz

cd GNU-Linux-x86/

vi confxml.xml, 修改如下行

<inotify>

<delete start="true"/>

<createFolder start="true"/>

<createFile start="true"/>

<closeWrite start="true"/>

<moveFrom start="true"/>

<moveTo start="true"/>

<attrib start="true"/>

<modify start="true"/>

</inotify>

<sersync>

<localpath watch="/opt/rsync">    #本地同步目录

<remote ip="192.168.2.27" name="rsync"/>  #目标服务器列表和同步模块名

<remote ip="192.168.0.2" name="rsync"/>

</localpath>

...

3. 运行Sersync与Sersync启动参数

sersync会对目录进行监控,将变化的目录或文件同步到远程服务器。sersync是递归监控的,如

果有多级目录,都会同步到远程服务器。常用启动方式如下:

在主服务器上开启sersync守护进程,使sersync在后台运行,开启实时同步。

#cd GNU-Linux-x86/

#./sersync2 -d -r

set the system param

execute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches

execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events

parse the command param

daemon thread num: 10

parse xml config file

host ip : localhost

host port: 8008

config xml parse success

please set /etc/rsyncd.conf max connections=0 Manually

sersync working thread 12  = 1(primary thread) + 1(fail retry thread) + 10(daemon sub threads)

please according your cpu ,use -n param to adjust the cpu rate

run the sersync:

watch path is: /opt/rsync

4、(1)配置目标服务器(多目录同步)

cd /mnt/

mkdir tongbu

vim /etc/rsyncd.conf

......

[tongbu]

path=/mnt/tongbu

comment = test files

ignore errors = yes

read only = no

hosts allow = 192.168.2.68

hosts deny = *

service xinetd restart

(2)配置主服务器

cd GNU-Linux-x86/

cp confxml.xml confxml-1.xml

vim confxml-1.xml

<sersync>

<localpath watch="/opt/tongbu1">

<remote ip="192.168.2.27" name="tongbu"/>

<!--<remote ip="192.168.8.39" name="tongbu"/>-->

<!--<remote ip="192.168.8.40" name="tongbu"/>-->

</localpath>

cd /opt/

mkdir tongbu1

cd GNU-Linux-x86/

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

cd /opt/tongbu1

touch hello

在目标服务器的/mnt/tongbu下就会有被同步的文件hello

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

./sersync -r

如果需要将sersync运行前,已经存在的所有文件或目录全部同步到远程,要以-r参数运行sersync,将本地与远程整体同步一次。如果设置了过滤器,即在xml文件中,filter为true,则暂时不能使用-r参数进行整体同步。-r参数将会无效

指定配置文件

./sersync -o XXXX.xml

对于sersync使用可执行文件目录下的默认配置文件confxml.xml,如果需要使用另一个配置文件,可以使用-o参数指定其它配置文件。

指定默认的线程池的线程总数

./sersync -n num

例如 ./sersync -n 5 则指定线程总数为5,如果不指定,默认启动线程池数量是10,如果cpu使用过高,可以通过这个参数调低,如果机器配置较高,可以用-n跳高线程总数。

不进行同步,只运行插件

./sersync -m pluginName

例如./sersync -m command,则在监控到文件事件后,不对远程目标服务器进行同步,而是直接运行command插件。

多个参数可以配合使用

./sersync -n 8 -o abc.xml -r -d

表示,设置线程池工作线程为8个,指定abc.xml作为配置文件,在实时监控前作一次整体同步,以守护进程方式在后台运行。

通常情况下,对本地到远程整体同步一遍后,在后台运行实时同步。

./sersync -r -d

——leeypp@gmail.com

服务器同步

时间: 2024-10-24 08:54:41

服务器同步的相关文章

小凡的Linux主机与时间服务器同步记录

小凡的Linux主机与时间服务器同步记录 导读 我们新安装的Linux主机,如果没有做与互联网服务器时间同步的处理的话,当我们使用date命令的时候,我们就看不到当前的时间,只能看到过去的时间.在我们接下来的Linux学习过程中,经常需要利用到实时时间,所以与互联网时间同步,是我们安装Linux系统后迫切需要解决的问题.今天,小凡就手把手交你,如何通过定时任务,将你的Linux主机时间和互联网时间服务器同步! 1.了解定时任务工具crontab a.相关命令的介绍 crontab -u # 设定

使用expect进行 rsync进行服务器同步备份

使用expect去除交付过程,达到能够实现服务器同步备份 第一:安装expect 检查是否已安装expect rpm -qa | grep tcl tclx-8.4.0-5.fc6 tcl-8.4.13-4.el5 第二:安装expect 下载地址: http://dl.oschina.net/soft/expect 检查tcl的安装位置 rpm -qa|grep tcl 需要安装tcl-devel rpm -ivh   tcl-devel-8.4.13-4.el5.x86_64.rpm 解压e

VC自动与Internet时间服务器同步更新

在VCKBASE.CSDN里挖了许久的坟,才找到一些有点用的资料,最后自己整理出这样的个函数,方面VC实现时间同步,多的不说,自己看源码,根据自己的需要可以适当修改源码: [cpp] view plain copy print? #include <WinSock.h> #pragma comment (lib,"Ws2_32") struct   NTP_Packet { int      Control_Word; int      root_delay; int   

SqlServer2008 跨服务器同步数据

最近工作中需要跨服务器同步数据,在数据库DB1中的表T1插入数据,同时触发T1的触发器(这里暂不讨论触发器的效率问题),向另一台服务器DB2中的相同的一张表T2插入数据,查看了一些资料说, 需要打开DTC(分布式交易协调器)协调跨多个数据库.消息队列.文件系统等资源管理器的事务, 于是按照网上说的,将自己的DTC打开启动,步骤如下: DTC位置:控制面板--管理工具--服务--Distributed Transaction Coordinator 然后在本机SqlServer里新建一个触发器测试

WSUS 服务器同步失败

某测试服务器ACCW8SD001 , WSUS 只有7月补丁数据同步了几次都是显示同步成功,但是死活没有任何数据下来 端口神马的都正确 ? 和上游同步服务器正常 c:\program files\update services\logfiles\change.log 2014-08-13 10:07:49.698 UTC    WSUS configuration has been changed 2014-08-13 10:57:27.601 UTC    Synchronization ma

设置linux服务器定时与时间服务器同步

在一些大公司经常出现这样一个情况:公司或一些机关单位的内部业务系统的应用服务器以及数据都是做的多机集群部署而且基本都是linux系统,而且都是内部网,不与外网通讯的.这样经常就会出现一个情况,我发送任务的时间还晚于对方任务接收的时间.这样经常令我们头痛,那为什么会出现这样一个情况呢,其实就是linux机器的系统没有定时同步导致的,这个问题不仅linux系统有,windows系统也会出现这样的问题,比如我们的windows系统很久没开过机了,那么我们就会发现windows系统上的时间不对了,但是为

第四章 从远程rsync服务器同步数据

第四章 从远程rsync服务器同步数据 使用rsync从远程rsync服务器同步数据 第一节 rsync配置 拉:          rsync        选项         用户名@备份源服务器IP::共享模块名  目标目录 推:         rsync        选项         备份源目录   用户名@目标服务器IP::共享模块名 C/S模式: 服务端==>    远程服务器为:DataServer.  IP地址为:192.168.88.8 客户端==>    备份服务

架设rsync服务器同步数据

什么是rsync rsync 是一个快速增量文件传输工具,它可以用于在同一主机备份内部的备分,我们还可以把它作为不同主机网络备份工具之用.本文主要讲述的是如何自架rsync服 务器,以实现文件传输.备份和镜像.相对tar和wget来说,rsync 也有其自身的优点,比如速度快.安全.高效. rsync的安装 在CentOS服务器,我们可以执行以下命令安装 yum install rsync 对于debian.ubuntu服务器,则是以下命令 sudo apt-get install rsync

远程服务器同步配置

rsync的使用--远程服务器同步配置 https://www.cnblogs.com/iceworld520/p/9186840.html 一.背景介绍 由于需要和其他系统进行对接.文件的逻辑地址通过接口传递,而文件的实体需要通过服务器间的同步进行传输.在同事的建议下选择了rsync. 二.RSYNC介绍 RSYNC 有多种方式进行同步,本篇文章主要叙述的是其中,两种远程服务器的同步配置.(在客户端 注意命令中":" 冒号的个数) 要了解更多关于rsync的内容,请跳转到 http: