设为首页 收藏本站
查看: 618|回复: 0

[经验分享] rsync实现文件实时同步 sersync多目录实时同步配置

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-12-28 11:16:56 | 显示全部楼层 |阅读模式
Rsync文件实时同步





一.环境描述

测试环境

需求:服务器A与服务器B为主备服务模式,需要保持文件一致性,现采用sersync基于rsync+inotify实现数据实时同步



环境描述:

主服务器172.26.7.50 ,从服务器172.26.7.51

实时同步/home/ 及/download 目录到从服务器


二.实施方法
1.从服务器172.26.7.51 rsync服务搭建
1.1下载软件包至从服务器

下载地址:http://rsync.samba.org/ftp/rsync/src

可根据环境需求下载相应的软件版本,本实验下载版本为rsync-3.1.1.tar.gz
1.2安装软件包

cd /usr/src

wget  http://rsync.samba.org/ftp/rsync/src/rsync-3.1.1.tar.gz

解压

tar xf rsync-3.1.1.tar.gz –C /opt/

mv /opt/rsync-3.1.1 /opt/rsync

cd /opt/rsync

./configure

make && make install

创建rsyncd.conf文件

vi /etc/rsyncd.conf



uid = root    #以root用户运行rsync服务

gid = root    #以root用户运行rsync服务

use chroot = no  #增加对目录文件软连接的备份

max connections = 1200  #最大连接数

timeout = 800    #超时时间

pid file = /var/run/rsyncd.pid   #PID存放位置

lockfile = /var/run/rsyncd.lock  #锁文件存放位置

log file = /var/log/rsyncd.log  #日志存放位置

[tongbu]  #认证模块名

path = /opt/tongbu   #同步A服务器的文件路径

ignore errors = yes  #忽略无关错误信息

hosts allow = 172.26.7.50   #允许访问IP

hosts deny = * #除了172.26.7.50主机外拒绝所有

read only = no#允许上传

write only = no #允许下载

list = yes   #允许列出同步目录

auth users = root   #同步的用户

secrets file = /etc/rsync.pass  #存放用户密码的文件

###########可以配置多个同步模块

[download]

path = /download

ignore errors = yes

hosts allow = 172.26.7.50

hosts deny = *

read only = no

list = yes

auth users = root

secrets file = /etc/rsync.pass

注:/etc/rsync.pass 文件格式为username:password

文件权限必须为600否则服务不正常



hosts allow 定义可为单独IP也可为网段,网段格式为172.26.7.0/24

也可为172.26.7.0/255.255.255.0

创建rsync.pass文件

echo “root:password”>>/etc/rsync.pass

chmod 600 /etc/rsync.pass

1.3启动服务

rsync --daemon –v

echo “rsync --daemon –v”>>/etc/rc.local

开机自启动


2.主服务器172.26.7.50配置
2.1下载软件包

所需软件包为:

rsync-3.1.1.tar.gz    inotify-tools-3.14.tar.gz   sersync2.5.4_64bit_binary_stable_final.tar.gz

rysnc下载地址:wget  http://rsync.samba.org/ftp/rsync/src/rsync-3.1.1.tar.gz

inotify-tools下载:wget http://github.com/downloads/rvoi ... y-tools-3.14.tar.gz

sersync下载:https://code.google.com/p/sersync/downloads


2.2软件安装

软件下载好之后解压安装

cd /usr/src

wget  http://rsync.samba.org/ftp/rsync/src/rsync-3.1.1.tar.gz

wget http://github.com/downloads/rvoi ... y-tools-3.14.tar.gz

wget https://sersync.googlecode.com/f ... stable_final.tar.gz



解压

tar xf rsync-3.1.1.tar.gz –C /opt

tar xf inotify-tools-3.14.tar.gz –C /opt

tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz–C /opt

cd /opt

mv rsync-3.1.1 rsync

mv inotify-tools-3.14inotify-tools

mv GNU-Linux-x86 sersync



编译安装rsync

cd rsync

./configure && make && make install

编译安装inotify-tools

cd inotify-tools

./configure && make && make install



2.3服务配置

配置sersync

cd sersync

cp confxml.xml confxml.xml_bak

vi confxml.xml

<?xml version="1.0"encoding="ISO-8859-1"?>

<head version="2.5">

   <host hostip="localhost"port="8008"></host>

   <debug start="false"/>

   <fileSystem xfs="false"/>

   <filter start="false">

       <exclude expression="(.*)\.svn"></exclude>

       <exclude expression="(.*)\.gz"></exclude>

       <exclude expression="^info/*"></exclude>

       <exclude expression="^static/*"></exclude>

   </filter>

   <inotify>

       <delete start="true"/>

       <createFolder start="true"/>

       <createFile start="false"/>

       <closeWrite start="true"/>

       <moveFrom start="true"/>

       <moveTo start="true"/>

       <attrib start="false"/>

       <modify start="false"/>

   </inotify>



   <sersync>

       <localpath watch="/opt/tongbu"><!—与从服务器同步的文件路径-->

           <remote ip="172.26.7.51"name="tongbu"/><!—与从服务器的模块名必须相同-->

       </localpath>

       <rsync>

           <commonParams params="-artuzlpog"/><!—rsync参数设置-->

           <auth start="true"users="root" passwordfile="/opt/sersync/user.pass"/>

           <userDefinedPort start="false"port="873"/><!-- port=874 -->

           <timeout start="false" time="100"/><!--timeout=100 -->

           <ssh start="false"/>

       </rsync>

       <failLogpath="/tmp/rsync_fail_log.sh"timeToExecute="60"/><!--default every 60mins execute once-->

       <crontab start="false"schedule="600"><!--600mins-->

           <crontabfilter start="false">

                <excludeexpression="*.php"></exclude>

                <excludeexpression="info/*"></exclude>

           </crontabfilter>

       </crontab>

       <plugin start="false" name="command"/>

   </sersync>



</head>



########如果是多个目录同步需要起两个sersync进程同时需要两个启动配置文件

cp /opt/sersync/confxml.xml /opt/sersync/downxml.xml

vi /opt/sersync/downxml.xml

<?xml version="1.0"encoding="ISO-8859-1"?>

<head version="2.5">

   <host hostip="localhost"port="8008"></host>

   <debug start="false"/>

   <fileSystem xfs="false"/>

   <filter start="false">

       <exclude expression="(.*)\.svn"></exclude>

       <exclude expression="(.*)\.gz"></exclude>

       <exclude expression="^info/*"></exclude>

       <exclude expression="^static/*"></exclude>

   </filter>

   <inotify>

       <delete start="true"/>

       <createFolder start="true"/>

       <createFile start="false"/>

       <closeWrite start="true"/>

       <moveFrom start="true"/>

       <moveTo start="true"/>

       <attrib start="false"/>

       <modify start="false"/>

   </inotify>



   <sersync>

       <localpath watch="/download"><!—与从服务器同步的文件路径-->

           <remote ip="172.26.7.51"name="download"/><!—与从服务器的模块名必须相同-->

       </localpath>

       <rsync>

           <commonParams params="-artuzlpog"/><!—rsync参数设置-->

           <auth start="true"users="root" passwordfile="/opt/sersync/user.pass"/>

           <userDefinedPort start="false"port="873"/><!-- port=874 -->

           <timeout start="false" time="100"/><!--timeout=100 -->

           <ssh start="false"/>

       </rsync>

       <failLogpath="/tmp/rsync_fail_log.sh"timeToExecute="60"/><!--default every 60mins execute once-->

       <crontab start="false"schedule="600"><!--600mins-->

            <crontabfilterstart="false">

                <excludeexpression="*.php"></exclude>

                <excludeexpression="info/*"></exclude>

           </crontabfilter>

       </crontab>

       <plugin start="false" name="command"/>

   </sersync>



</head>





配置密码文件

echo “password”>>/opt/sersync/user.pass

注:文件权限必须为600否则启动异常
2.4服务启动

nohup /opt/sersync/sersync2  -r -d -o/opt/sersync/confxml.xml >/opt/sersync/rsync.log  2>&1 &

#######如果是多个目录同步需要启动两个进程

nohup /opt/sersync/sersync2  -r -d -o/opt/sersync/downxml.xml >/opt/sersync/downrsync.log  2>&1 &





-d:启用守护进程模式

-r:在监控前,将监控目录与远程主机用rsync命令推送一遍

-n:指定开启守护线程的数量,默认为10个

-o:指定配置文件,默认使用confxml.xml文件

开机启动写入/etc/rc.local文件中



验证

在主服务器上的/opt/tongbu及/home目录下创建文件查看从服务器172.26.7.51上是否有同步

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-157399-1-1.html 上篇帖子: RabbitMQ搭建 下篇帖子: samba配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表