金山逍遥网 sersync 服务器实时镜像同步方案

2023-10-30

金山逍遥网 sersync 服务器实时镜像同步方案

1、 sersync+rsync原理
2、inotify和sersync同步的区别
3、 配置sersync+rsync实现实时同步

2台centos7.4,一台装sersync一台装rsync服务
Sersync服务器(数据源):192.168.1.63
Rsync服务器(备份端):192.168.1.64

一、为什么要用rsync+sersync架构?

1、sersync是基于inotify开发的,类似于inotify-tools的工具
2、sersync可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或者某一个目录的名字,然后使用rsync同步的时候,只同步发生变化的文件或者目录

二、rsync+inotify-tools与rsync+sersync架构的区别?

1、rsync+inotify-tools
a、inotify只能记录下被监听的目录发生了变化(增,删,改)并没有把具体是哪个文件或者哪个目录发生了变化记录下来;
b、rsync在同步的时候,并不知道具体是哪个文件或目录发生了变化,每次都是对整个目录进行同步,当数据量很大时,整个目录同步非常耗时(rsync要对整个目录遍历查找对比文件),因此效率很低

2、rsync+sersync
a、sersync可以记录被监听目录中发生变化的(增,删,改)具体某个文件或目录的名字;
b、rsync在同步时,只同步发生变化的文件或目录(每次发生变化的数据相对整个同步目录数据来说很小,rsync在遍历查找对比文件时,速度很快),因此效率很高。

同步过程:

  1. 在同步服务器上开启sersync服务,sersync负责监控配置路径中的文件系统事件变化;
  2. 调用rsync命令把更新的文件同步到目标服务器;
  3. 需要在主服务器配置sersync,在同步目标服务器配置rsync server(注意:是rsync服务)
    同步原理:
  4. 用户实时的往sersync服务器上写入更新文件数据;
  5. 此时需要在同步主服务器上配置sersync服务;
  6. 在另一台服务器开启rsync守护进程服务,以同步拉取来自sersync服务器上的数据;
    通过rsync的守护进程服务后可以发现,实际上sersync就是监控本地的数据写入或更新事件;然后,在调用rsync客户端的命令,将写入或更新事件对应的文件通过rsync推送到目标服务器

Rsync服务安装

Rsync服务依赖Xinetd,是使用超级服务来管理的63 ~]# rpm -ivh /media/Packages/xinetd-2.3.14-39.el6_4.x86_64.rpm守护进程

63 ~]# rpm -ivh /media/Packages/rsync-3.0.6-9.el6_4.1.x86_64.rpm 

#yum -y install xinetd rsync
rsync --daemon
63 ~]# netstat -antup | grep 873
tcp        0      0:::873                      :::*                        LISTEN      2349/xinetd

非系统用户备份数据

使用系统配置文件/etc/rsyncd.conf来备份数据,创建备份账户,最后把rsync以deamon方式运行
rsyncd.conf配置文件
配置文件分为两部分:全局参数,模块参数
全局参数:对rsync服务器生效,如果模块参数和全局参数冲突,冲突的地方模块参数生效
模块参数:定义需要通过rsync输出的目录定义的参数
常见的模块参数:主要是定义服务器哪个要被同步输出,其格式必须为“ [ 共享模块名 ]” 形式,这个名字就是在 rsync 客户端看到的名字

用配置文件定义目录输出

63 ~]# vim /etc/rsyncd.conf                    //文件不存在,需要自己创建
#Rsync server
uid = root                         #运行进程的身份
gid = root                         #运行进程的组
use chroot = yes                   #是否锁定家目录
max connections = 100           #最大连接数
timeout = 600                    #超时时间
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 = backup
secrets file = /etc/rsync.password

[www]
comment = www
path = /var/www/html

启动rsync与xinetd服务

  1. systemctl start xinetd #启动xinetd服务
  2. systemctl enable xinetd #将xinetd服务加入开机项
  3. rsync --daemon --config=/etc/rsyncd.conf #加载配置文件rsyncd.conf启动rsync服务
  4. ps aux | grep rsync

配置rsync开机自启动

echo "rsync --daemon --config=/etc/rsyncd.conf"  >> /etc/rc.d/rc.local

创建目录

#mkdir -p /var/www/html

创建密码文件:

#vim /etc/rsync.password
backup:xuegod
chmod 600 /etc/rsync.password

1.63数据源端测试rsync同步

新建一个文件保存好密码,然后在rsync命令中使用–password-file指定此文件即可

echo  "xuegod">/etc/rsync.password
chmod 600 /etc/rsync.password 

创建测试文件

63 ~]# mkdir -p /var/www/html
63 ~]# cp /etc/passwd /var/www/html/
rsync -avzP  /var/www/html  backup@192.168.1.64::www/ --password-file=/etc/rsync.password

测试这步一定要成功,不然进行不了下一步

1.63上开始部署sersync服务

1、下载sersync
在google code下载sersync的可执行文件版本,里面有配置文件与可执行文件
Wget https://sersync.googlecode.com/files/sersync2.5.4_64bit_binary_stable_final.tar.gz(有时下载失败,所有要本地留存才行)

上传到服务器

tar xvf sersync2.5.4_64bit_binary_stable_final.tar.gz
mv GNU-Linux-x86 sersync

2、配置sersync

cp sersync/confxml.xml   sersync/confxml.xml.$(date +%F)

更改优化sersync配置文件:
修改24–28行

<sersync>
        <localpath watch="/var/www/html">    #本地同步目录
            <remote ip="192.168.10.64" name="www"/>   #rsync模块名称

修改31–34行,认证部分【rsync密码认证】

<rsync>
            <commonParams params="-artuz"/>
            <auth start="true" users="backup" passwordfile="/etc/rsync.password"/>
            <userDefinedPort start="false" port="874"/><!-- port=874 -->
            <timeout start="false" time="100"/><!-- timeout=100 -->
            <ssh start="false"/>

开启sersync守护进程同步数据

/root/sersync/sersync2  -d -r -o  /root/sersync/confxml.xml
   
Echo  "PATH=$PATH:/root/sersync/">>/etc/profile

source /etc/profile

在这里插入图片描述

测试

创建新文件测试

总结:

1、sersync+rsync原理
2、 inotify和sersync同步的区别
3、配置sersync+rsync实现实时同步

多实例

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

金山逍遥网 sersync 服务器实时镜像同步方案 的相关文章

  • Django、apache、mod_wsgi - 错误:脚本标头过早结束

    Apache 以调试模式登录 Tue Dec 21 11 36 33 2010 info client 1 53 149 114 mod wsgi pid 24831 process mysite application mysite co
  • Centos 7 - openjdk8 的 jfx 库在哪里?

    我有centos 7 1 我安装了openjdk8和openjdk devel8 但是 当我尝试在 netbeans 中编译我的 jfx 应用程序时 我得到包 javafx 不存在 经过一番调查 我发现jdk中没有jfxrt jar 除了
  • Vagrant 与 apache 同步文件夹权限问题

    我正在运行 Centos6 4 机器 Running vagrant upVagrant 文件中没有同步文件夹配置就可以了 我可以通过以下方式访问我的主机http localhost 8080它显示 Apache 页面 我可以在中创建ind
  • 内存屏障和 TLB

    内存屏障保证数据缓存的一致性 但是 它能保证TLB的一致性吗 我发现一个问题 在线程之间传递 MappedByteBuffer 时 JVM java 7 update 1 有时会因内存错误 SIGBUS SIGSEG 而崩溃 e g fin
  • 如何在 CentOS 上安装 PySide?

    我想在 CentOS 上安装 ReText 有一个问题 root localhost scripts 2 6 python retext py Traceback most recent call last File retext py l
  • ai_socktype 不支持 Servname

    我正在使用 Vagrant 运行 Centos 虚拟机 机器似乎运行正常 但是当我尝试同步 Perforce 时 我可以看到以下错误 vagrant vagrant c5 x86 64 perforce p4 sync f Perforce
  • Google Cloud Compute 上的多个 IP 地址

    我正在尝试使用多个内部 IP 地址设置基于 CentOS 7 的虚拟机 但它似乎并不像 Amazon AWS 那样简单 您可以使用路由为虚拟机添加内部 IP https cloud google com compute docs refer
  • 在 Linux 上安装 nloptr

    我正在尝试安装 R 包nloptr在没有互联网连接的 CentOS Linux 机器上 如下所示 install packages home ravi nloptr 1 0 4 tar gz repos NULL type source 该
  • Haproxy 性能调整?

    我们正在尝试为来自客户端 而不是浏览网络交易类型的用户 的 get 和 post 请求找到 haproxy 的最佳调整选项 使用 30k 线程运行 jmeter 测试 其中包括 5 个对服务器的调用 1 个用户注册和一些更新调用 这些通过管
  • 编译 Lua - 创建 .so 文件?

    我正在 Centos 6 5 上编译 Lua 5 2 3 编译 安装工作正常 但是 我还需要编译另一个程序的开发库 我通常会通过这样做来安装它们 yum install lua devel 问题是安装 Lua 5 1 共享库 而不是 5 2
  • 无法在 CentOS 7 上的 PHP 中打开 file_put_contents 上的流

    我知道这是许多线程的常见错误 但我厌倦了搜索 但仍然没有解决它 当我尝试运行该函数时文件放置内容我收到以下错误 Warning file put contents test txt failed to open stream Permiss
  • 将 awk 输出保存到变量 [重复]

    这个问题在这里已经有答案了 谁能帮我解决这个问题吗 我正在尝试将 awk 输出保存到变量中 variable ps ef grep port 10 grep v grep port 10 awk printf s 12 printf var
  • CentOS 的 init.d celery 脚本?

    我正在编写一个使用 celery 的 Django 应用程序 到目前为止 我一直在 Ubuntu 上运行 但我正在尝试部署到 CentOS Celery 为基于 Debian 的发行版提供了一个很好的 init d 脚本 但它不适用于基于
  • crontab 作业的 STDOUT 和 STDERR 输出在哪里

    有谁知道 CentOS 中正常 crontab 作业输出的 STDOUT 和 STDERR 在哪里 我检查了 var log cron文件 但它只记录了 cron 作业执行的时间和命令 没有找到 STDOUT 或 STDERR 内容 看看
  • 出现错误 /usr/bin/env: 节点:权限被拒绝

    我已经在我的服务器 Centos 上完成了 ODOO v9 安装 一切都已安装成功 登录页面也可以正常工作 但登录后我收到一个包含以下错误的页面 usr bin env node Permission Denied 我尝试更改权限 但我的问
  • Vagrant 的端口转发不起作用[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我在最后遇到了一个小问题入门指南vagrant http vagrantup com docs getting started ports html
  • 缺少单独的调试信息,请使用: debuginfo-install glibc-2.12-1.47.el6_2.9.i686 libgcc-4.4.6-3.el6.i686 libstdc++-4.4.6-3.el6.i686

    CentOS 6 2 GNU gdb GDB 红帽企业 Linux 7 2 50 el6 当我使用 GDB 调试简单的 C 代码时 我看到以下警告 Missing separate debuginfos use debuginfo inst
  • 导入错误:没有名为 django 的模块

    我使用的是centos Linux 我有 python 2 6 和 django 现在我升级到 python 2 7 Python 2 6 位于 usr lib python2 6 Python 2 7 位于 usr local lib p
  • 如何在CentOS 5.3上安装php-mongodb?

    我已经在我的 VPS 上安装了 mongoDB 效果很好 现在我想安装 php 驱动程序以使 php 与 mongoDB 一起工作 我跟着蒙戈安装 http www php net manual en mongo installation
  • Monkeyrunner/jython 中未找到 JDBC 驱动程序错误

    我需要在中插入一些东西DB 我在用着JDBC as a connector jython the script mysql数据库和脚本正在运行CentOS 我的代码看起来像这样 from com android monkeyrunner i

随机推荐

  • react中样式的使用(内联和外部样式表)

    1 在src中新建三个子组件分别为 Header Footer Content 2 在里面分别写入代码 建议用rcc快捷方式 Header js中代码如下 import React Component from react var Head
  • Java中哈希集(HashSet)概念,实现以及操作

    Java中HashSet的用法 1 HashSet概念 2 Java文档中HashSet的实现 3 HashSet的构造函数 3 1 HashSet 3 2 HashSet int initialCapacity 3 3 HashSet i
  • Ubuntu 安装 pytorch

    使用 pytorch 进行深度学习训练 这也是我不得不选择 linux 的原因 系统 ubuntu 22 04 型号 Lenovo Yoga 14sIHU 2021 集显 Irix Xe lspci grep i vga 独显 GeForc
  • diff linux文件夹patch,Linux中的版本控制---diff和patch命令

    一 构造两个用于测试的文件 hello txt world txt 二 用diff命令比较两个文本文件的差异 对这个两个文本文件执行diff 命令 并通过输出重定向 将差异保存在diff txt文件中 diff u hello txt wo
  • 使用 Docker Compose 部署 Elasticsearch + Kibana

    本篇文章主要介绍了使用 Docker Compse 部署 Elasticsearch Kibana 并整合到 Spring Boot 项目中的详细步骤 Elasticsearch Kibana 版本 7 17 0 7 的最新版本 Sprin
  • Android 语音播放Media Player

    原文地址 https developer android com guide topics media mediaplayer html viacontentresolver 语音播放 因为实习工作相关的缘故 最近在学习android语音播
  • 多个RecycleView 嵌套显示不全的情况

    场景 项目中最外层使用ScrollView 里面嵌套了recycleview recycleview中又嵌套了多个recycleview 导致部分recycleview显示不出来 app界面的结构图
  • 空间域图像增强:图像锐化/增强

    空间域图像增强 OpenCV图像锐化 增强 0 综述 1 Laplacian高通滤波算子 2 Laplacian锐化代码实践 3 USM锐化增强算法 4 USM代码实践 0 综述 图像的卷积计算除了可以完成我们前面介绍的模糊去噪 边缘检测等
  • anaconda3.6.5安装pyhive

    1 首先安装anaconda3 6 5 略 2 配置好bin下环境变量 3 来到anaconda官网 搜索需要的包 pyhive 不是anaconda前缀的也行 例如biaze pyhive https anaconda org anaco
  • Qt学习笔记

    1 Qt 音同 cute 是一个跨平台的 C 开发库 主要用来开发图形用户界面 Graphical User Interface GUI 程序 当然也可以开发不带界面的命令行 Command User Interface CUI 程序 2
  • Ubuntu 16.04出现:Problem executing scripts APT::Update

    Ubuntu 16 04出现 Problem executing scripts APT Update Post Invoke Success if usr bin test w var cache app info a e usr bin
  • unity按钮实现人物变大效果

    unity按钮实现人物变大效果 游戏里面模型变大效果的实现 如下动态图所示 点我下载 https download csdn net download weixin 43474701 71975042
  • java 通过pdf模板,生成PDF,并下载到本地

    注意 本例子是从向模板定义的变量赋值 而不是从无到有的来生成pdf 直接就能用 maven依赖
  • 精通MySQL之架构篇

    今天给大家分享的是大数据开发基础部分MySQL的第一篇 老刘讲点和别人不一样的内容 众多伙伴都知道MySQL的基础知识以及使用 但是对里面的原理知道的不多 咱们学知识只看表面绝对是不行的 所以老刘争取把MySQL的架构知识给大家讲明白 My
  • Shell编程之echo命令

    Shell 的 echo 指令与 PHP 的 echo 指令类似 都是用于字符串的输出 命令格式 echo string 您可以使用echo实现更复杂的输出格式控制 1 显示普通字符串 echo It is a test 这里的双引号完全可
  • Vue3 (computed函数,watch函数,watchEffect函数)

    1 computed函数 与vue2中computed配置功能一致 变化 需要引入 组合式的API
  • 树莓派第一讲:入门那些事(系统烧录、外设连接)

    目录 基本了解 系统烧录 连接外设 基本了解 树莓派4B是一款单板计算机 采用ARM架构处理器 配备4GB内存 Gigabit以太网口 多个USB接口 HDMI输出接口等 它具备1 5Ghz运行的64位四核处理器 最高支持以60fps速度刷
  • 因果推断 - 基础知识

    目录 因果关系之梯 因果图的路径结构 阻断 d 分离 混杂 结构因果模型 SCM 版权 转载前请联系作者获得授权 声明 部分内容出自因果关系之梯 已获得原作者授权 参考书籍 The Book of Why Judea Pearl 因果关系之
  • 什么是回调函数Callback----自己的一点理解

    何为回调函数 若把函数的指针作为函数参数传递给一个函数 当这个指着被用来调用它所指向的函数时 我们将该指针所指向的函数称为回调函数 回调函数与普通函数最大区别在于函数的调用 对普通函数而言 函数实现者可以直接拿来用 可以直接将它放在main
  • 金山逍遥网 sersync 服务器实时镜像同步方案

    金山逍遥网 sersync 服务器实时镜像同步方案 1 sersync rsync原理 2 inotify和sersync同步的区别 3 配置sersync rsync实现实时同步 2台centos7 4 一台装sersync一台装rsyn