1、网络拓扑图
2、环境部署准备
Sersync A服务 Centos6.6 ip 192.168.1.101
Rsync B服务 Centos6.6 ip 192.168.1.103
Rsync C服务 Centos6.6 ip 192.168.1.104
1、检查系统环境变量
[root@A-server ~]# cat /etc/redhat-release CentOS release 6.6 (Final) [root@A-server ~]# uname -r 2.6.32-504.el6.x86_64 [root@A-server ~]# uname -m x86_64
2、在B和C服务器创建rsyncd.conf配置文件
vim /etc/rsyncd.conf
#Rsync server #created by shnne 22:54 2017-9-16 ##rsyncd.conf start## uid = root gid = root use chroot = no max connections = 2000 timeout = 600 pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock log file = /var/log/rsyncd.log ignore errors read only = false list = false hosts allow = 192.168.1.0/24 hosts deny = 0.0.0.0/32 auth users = rsync_backup secrets file = /etc/rsync.password ##################################### [www] comment = www by shnne 22:54 2017-9-16 path = /data0/www/www/ ##################################### [bbs] comment = bbs by shnne 22:54 2017-9-16 path = /data0/www/bbs/ ##################################### [blog] comment = blog shnne 22:54 2017-9-16 path = /data0/www/blog/
3、创建目录
mkdir -p /data0/www/{www,bbs,blog}
4、设置相关权限认证
echo "rsync_backup:shnne" >/etc/rsync.password chmod 600 /etc/rsync.password #检查权限是否正确 cat /etc/rsync.password ll /etc/rsync.password
5、开启rsync守护进程
rsync --daemon ps -ef|grep rsync lsof -i tcp:873 netstat -antup|grep 873
6、将rsync服务加入开机自启动
echo "/usr/local/bin/rsync --daemon" >>/etc/rc.local
7、重启rsync
pkill rsync rsync --daemon ps -ef|grep rsync
8、在A上配置rsync权限
echo "shnne" >/etc/rsync.password chmod 600 /etc/rsync.password #检查 cat /etc/rsync.password ll /etc/rsync.password
9、在A上手工测试rsync同步情况
mkdir -p /data0/www/{www,bbs,blog} touch /data0/www/www/www.log /data0/www/bbs/bbs.log /data0/www/blog/blog.log #手动测试,执行同步命令 rsync -avzP /data0/www/www/ rsync_backup@192.168.1.103::www/ --password-file=/etc/rsync.password rsync -avzP /data0/www/www/ rsync_backup@192.168.1.104::www/ --password-file=/etc/rsync.password rsync -avzP /data0/www/bbs/ rsync_backup@192.168.1.103::bbs/ --password-file=/etc/rsync.password rsync -avzP /data0/www/bbs/ rsync_backup@192.168.1.104::bbs/ --password-file=/etc/rsync.password rsync -avzP /data0/www/blog/ rsync_backup@192.168.1.103::blog/ --password-file=/etc/rsync.password rsync -avzP /data0/www/blog/ rsync_backup@192.168.1.104::blog/ --password-file=/etc/rsync.password
10.在A安装sersync
64位下载地址:https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/sersync/sersync2.5.4_64bit_binary_stable_final.tar.gz
32位下载地址:https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/sersync/sersync2.5_32bit_binary_stable_final.tar.gz
shnne博客提供地址:点击下载
压缩包里面有两个文件confxml.xml sersync2
sersync2 这个是sersync主程序
confxml.xml 这个是sersync配置文件
cd /server/tools tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz -C /usr/local cd /usr/local/ mv GNU-Linux-x86/ sersync mkdir -p bin config logs mv confxml.xml conf/ mv sersync2 bin/sersync /bin/cp conf/confxml.xml conf/confxml.xml$(date +%F) #备份配置文件 cd conf/
11、修改配置文件,将第24-28行内容删除掉,换成下面内容
修改38-44行,认证部分 将 修改为 将 修改为 修改45行 将 修改为 保存退出 wq!
12、开启sersync守护进程同步数据
先配置sersync环境变量 echo 'export PATH=$PATH:/usr/local/sersync/bin' >>/etc/profile tail -1 /etc/profile source /etc/profile 启动命令: sersync -r -d -o /usr/local/sersync/conf/confxml.xml
参数:
-o:指定配置文件,如果不指定他默认是二进制下的配置文件
-d:后台运行
-r:主服务器和备服务器可能两边数据不一致,-r表示数据初始化一次,保证数据一致
启动的过程及结果
[root@A conf]# sersync -r -d -o /usr/local/sersync/conf/www_confxml.xml 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 option: -r rsync all the local files to the remote servers before the sersync work option: -d run as a daemon option: -o config xml name: /usr/local/sersync/conf/www_confxml.xml daemon thread num: 10 parse xml config file host ip : localhost host port: 8008 daemon start,sersync run behind the console use rsync password-file : user is rsync_backup passwordfile is /etc/rsync.password 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) Max threads numbers is: 32 = 12(Thread pool nums) + 20(Sub threads) please according your cpu ,use -n param to adjust the cpu rate ------------------------------------------ rsync the directory recursivly to the remote servers once working please wait... execute command: cd /data0/www/www && rsync -artuz -R --delete ./ --timeout=100 rsync_backup@192.168.1.104::www --password-file=/etc/rsync.password >/dev/null 2>&1 run the sersync: watch path is: /data0/www/www
13、切换到sersync配置文件目录下
cd /usr/local/sersync/conf cp confxml.xml www_confxml.xml
编辑www_confxml.xml,保留www模块,删除bbs 和 blog模块
cp confxml.xml bbs_confxml.xml
编辑bbs_confxml.xml,保留bbs模块,删除www和blog模块
图片和www的那个差不多
cp confxml.xml blog_confxml.xml
编辑blog_confxml.xml模块,保留blog模块,删除www和bbs模块
图片和www的那个差不多
14、多实例初始化同步命令
sersync -r -d -o /usr/local/sersync/conf/www_confxml.xml sersync -r -d -o /usr/local/sersync/conf/bbs_confxml.xml sersync -r -d -o /usr/local/sersync/conf/blog_confxml.xml cat>>/etc/rc.local<
Sersync参数 说明
./sersync -r -r参数作用是在开启实时监控之前对主服务器目录与远程目标主机目录进行一次整体同步。如果需要将sersync运行前,主服务器目录下已经存在的所有文件或目录全部同步到远端,则要以-r参数运行sersync,将本地与远端整体同步一次。特别说明:如果设置了过滤器,即在xml文件中,filter为true,则暂时不能使用-r参数进行整体同步
./sersync -o shnne.xml 不指定-o参数时,sersync会使用sersync可执行文件目录下的默认配置文件confxml.xml,如果需要使用其他的配置文件,可以使用-o参数制定其他配置文件,通过-o参数,我们可以制定多个不同的配置文件,从而实现sersync多进程多实例的数据同步,本文的例子就是如此
./sersync -n num -n参数为指定默认的线程池的线程总数,例如 ./sersync -n 5则指定线程总数为5,如果不指定,默认启动线程池数量是10,如果cpu使用过高,可以通过这个参数调低,如果机器配置较高,可以用-n跳高默认的线程总数,提高同步效率
./sersync -d -d参数为后台启动服务,在通常情况下,使用-r参数对本地到远程整体同步一遍后,在后台运行此参数启动守护进程实时同步,在第一次整体同步时,-d和-r参数经常会联合使用。 ./sersync -d -r
./sersync -m -m 参数为不进行同步,只运行插件pluginName ./sersync -m pluginName 例如./sersync -m command,则在监控到事件后,不对远程目标服务器进行同步,而是直接运行command插件
-n 8 -o shnne.xml -r -d 多个参数可以配合使用,例如./sersync -n 16 -o config.xml -r -d,表示设置线程池工作线程为16个,指定shnne.xml 作为配置文件,在实时监控前做一次整体同步,以守护进程方式在后台运行