基于sersync 的linux实时文件同步

Sersync 是金山公司牛人开发出来的一款开源软件,用于 linux 系统之间 web 同步软件
 
详情请见:
http://code.google.com/p/sersync/
 
 
首先检查 linux 系统是否带有 rsync :
 
[root@lv183 ~]# rpm -qa |grep rsync
rsync-2.6.8-3.1
 
sersync 需要 linux 内核 2.6 以上 , 安装前请检查版本:
 
[root@lv183 ~]# uname -a
Linux lv183 2.6.18-164.el5 #1 SMP Thu Sep 3 03:28:30 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
 
 
服务器端安装配置:
 
需要在   http://code.google.com/p/sersync/downloads/list   下载服务器端软件
目前比较稳定的版本为:   sersync2.5_64bit_binary_stable_final.tar.gz   
 
 
安装:
 
[root@localhost sersync]# tar -zxvf sersync2.5_64bit_binary_stable_final.tar.gz
GNU-Linux-x86/
GNU-Linux-x86/confxml.xml
GNU-Linux-x86/sersync2
 
 
[root@localhost sersync]# cd ./GNU-Linux-x86/
编辑 confvml.xml 文件
[root@localhost GNU-Linux-x86]# vi confxml.xml
修改
 
   <sersync>
        <localpath watch="/usr/local/idoicancms">
            <remote ip="192.168.0.***" name="tongbu1"/>
        </localpath>
 
 
红手字体为需要修改的地方, /usr/local/idoicancms " 为需要同步的路径
 
 <remote ip="192.168.0.***" name="tongbu1"/>
 
表明要将主服务器上本地的 /usr/local/idoicancms 路径下的文件,同步到远程服务器 192.168.0.** tongbu1 模块。
 
设置访问密码:
 
  <rsync>
            <commonParams params="-artuz"/>
            <auth start="false" users="transfer" passwordfile="/etc/rsync.pas"/>
            <userDefinedPort start="false" port="874"/><!-- port=874 -->
            <timeout start="false" time="100"/><!-- timeout=100 -->
            <ssh start="false"/>
        </rsync>
 
Transfer 为访问用户名 /etc/rsync.pas 为密码存放处。
 
在服务器端开启 sersync 守护进程:
[root@localhost GNU-Linux-x86]# ./sersync2 �Cd
 
 
 
 
目标端配置:
 
vi /etc/rsyncd.conf

[root@lv183 etc]# vi 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
 
 
 [tongbu1]
 path=/usr/local/idoicancms
 comment = xoyo video files
 ignore errors = yes
 read only = no
 hosts allow = 192.168.**.**/24
 hosts deny = *
~
   
上面配置文件,表明允许主服务器(假设 ip 192.168**.** )访问, rsync 同步模块名为 [tongbu1] ,将同步过来的文件放入 path 指定的目录 /usr/local/idoicancms
如果有多台从服务器,则每一台都需要进行类似的配置。
配置好之后,使用如下命令,开启 rsync 守护进程 :
 
开启 rsync daemon 格式
 
[root@lv183 run]# rsync --daemon --config=/etc/rsyncd.conf
 
 
分别将服务器端和目标端守护进程写进 /etc/rc.local 里,这样服务器重启后可以自行启动。
 
OK , 以上配置就完成了,很简单吧 , 可以在服务器端新建立个文件来测试同步程序是否启用。
 
 
 
 
 
 
2. 在开启实时监控的之前对主服务器目录与远程目标机目录进行一次整体同步
./sersync -r

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

3.
查看启动参数帮助
./sersync --help


4.
指定配置文件
./sersync -o XXXX.xml

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

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

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

7. 多个参数可以配合使用
./sersync -n 8 -o abc.xml -r -d

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

8. 通常情况下,对本地到远程整体同步一遍后,在后台运行实时同步。
./sersync -r -d


你可能感兴趣的:(linux,文件,实时,休闲,sersync)