sersync服务器同步 #单向同步
1. 配置同步目标服务器rsync 在目标服务器上配置如下: 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.0.107/24 #从哪台服务器备份 hosts deny = * mkdir /opt/rsync #同步目录 rsync --daemon #后台运行rsync 2. 在主服务器上安装配置sresync tar zxf sersync2.5_32bit_binary_stable_final.tar.gz cd GNU-Linux-x86/ vi confxml.xml, 修改如下行 <sersync> <localpath watch="/opt/rsync"> #本地同步目录 <remote ip="192.168.0.104" name="rsync"/> #目标服务器列表和同步模块名 <remote ip="192.168.0.x" name="rsync"/> #可以设置多个 </localpath> mkdir /opt/rsync #同步目录 ./sersync2 -r -d #后台实时同步,-r同步执行所有,-d后台执行 测试: 目标服务器/opt/rsync会随着主服务器/opt/rsync的变动而变动######################################################################
csync2 服务器同步 #双向同步,不适合同步大文件,适合电子商务
PC1:192.168.0.107 PC2:192.168.0.108 在两台上同样操作 yum install gcc gcc-c++ libgpg-error libgpg-error-devel libgcrypt libgcrypt-devel -y tar zxf libtasn1-2.1.tar.gz #这个可以用yum装,要装libtasn1.x86_64 libtasn1-devel.x86_64 cd libtasn1-2.1 ./configure && make && make install tar zxf sqlite-2.8.17.tar.gz cd sqlite-2.8.17 ./configure && make && make install tar zxf librsync-0.9.7.tar.gz cd librsync-0.9.7 ./configure && make && make install tar jxf gnutls-2.6.6.tar.bz2 cd gnutls-2.6.6 ./configure && make && make install echo "/usr/local/lib" >> /etc/ld.so.conf ldconfig tar zxf inotify-tools-3.13.tar.gz inotify-tools-3.13 ./configure && make && make install yum install byacc flex -y tar zxf csync2-1.34.tar.gz cd csync2-1.34 ./configure && make && make install make cert csync2 -k /etc/csync2.key scp /etc/csync2.* 192.168.0.108:/etc/ #只在107做,拷贝到108,108不用make cert,两台主机要有一样的key 文件配置,两台机子操作一样 yum install xinetd -y vi /etc/xinetd.d/csync2 #模板/etc/xinetd.d/下的 service csync2 { disable = no protocol = tcp port=30865 flags = REUSE socket_type = stream wait = no user = root group = root server = /usr/local/sbin/csync2 #csync2服务路径 server_args = -i } vi /etc/services csync2 30865/tcp vi /etc/csync2.cfg group mygroup { host host server7.example.com desktop73.example.com; (每台主机完整的主机名) #host host4@host4-eth2; #key /etc/csync2.key; include /opt/rsync; #需要同步的目录,可以多个 #include %homedir%/bob; #exclude %homedir%/bob/temp; exclude *~ .*; #排除以 “.”开头的文件 # #action #{ #pattern /etc/apache/httpd.conf; #pattern /etc/apache/sites-available/*; #exec "/usr/sbin/apache2ctl graceful"; #logfile "/var/log/csync2_action.log"; #do-local; #} # #backup-directory /var/csync2; #防错备份目录,根据自己的需求设置,每台主机上都要有 #backup-generations 3; # auto younger; #同步以最新的文件为标准更新 } # # prefix homedir #{ #on host[12]: /export/users; #on *: /home; #} vi /etc/hosts #两台机子都要有解析(自己和对方) /etc/init.d/xinetd start csync2 -vvv -T 测试csync配置是否正确,在两台机子都做 没有错误后,测试 cd /opt/rsync cp /boot/* . csync2 -xv 执行同步命令 查看是否同步 若要自动同步,写脚本 vi /usr/local/sbin/csync2.sh #!/bin/bash src=/opt/rsync /usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' \ --exclude "\.swp$" \ -e close_write,modify,delete,create,attrib \ ${src} \ | while read file do csync2 -x >/dev/null 2>&1 #csync2 -xv #echo "${src} was csynced....." done chmod +x csync2.sh csync2.sh & (在每台主机上执行 ) 若出现问题,尝试ldconfig /usr/local/bin ldconfig是一个动态链接库管理命令,装了新的动态库,让动态链接库为系统所共享