rsync数据同步和sersync数据实时同步服务器

news2024/11/6 9:46:47

rsync数据同步和sersync数据实时同步服务器

基于三台服务器,部署数据实时同步服务器,一台作为主服务器sersync(推送数据),其余两台作为备用服务器rsync(拉取数据)。
 

rsync 数据同步

环境:

服务器:172.20.26.167

服务器:172.20.26.198

服务器:172.20.26.24

 实现有权限的地址可同步

两台服务器均需安装有rsync服务。

在172.20.26.198上检查是否有安装rsync 服务

[root@localhost ~]# rpm -qc rsync  #查询rsync服务的配置文件

未安装软件包 rsync

[root@localhost ~]# yum install rsync -y

[root@localhost ~]# rpm -qc rsync  #查询rsync 服务的配置文件

/etc/rsyncd.conf

/etc/sysconfig/rsyncd

[root@localhost ~]# vim /etc/rsyncd.conf   #守护模式的配置文件rsyncd.conf,在后台运行的进程,不影响前端的shell

把光标移动到uid行首,ctrl+v 进入可视化模式,按向右键,再按向下键,再按x键,去掉#号注释,保留有效参数

修改相关配置参数:

uid = root  rsync    #进程管理用户

gid = root   rsync   #进程管理用户

use chroot = yes     #安全设置,限制软连接,如果设置为no,则文件同步到远程服务器后,会在链接文件前面增加一个目录,使链接文件失效,设置为yes则表示不加目录。

max connections = 10  #最大链接数

ignore nonreadable = yes   #忽略不可读的错误

read only = false       #关闭只读权限

hosts allow = 172.20.26.24  #允许同步的服务器

hosts deny = *   #不允许同步的服务器,* 代表所有

auth users = rsync             #创建同步时使用的虚拟用户

secrets file = /etc/rsync.passwd    #将密码写入rsync.passwd 文件,使用该虚拟用户同时时不需要再输入密码

编辑【web】模块、【sql】模块

[web]

       path = /data/web

       comment = nginx data backup

[sql]

      path = /data/sql

      comment = sql data backup

[root@localhost ~]# systemctl start rsyncd

[root@localhost ~]# systemctl status rsyncd

创建配置文件设置的目录路径

[root@localhost ~]# mkdir -p /data/web

[root@localhost ~]# ls

anaconda-ks.cfg

[root@localhost ~]# mkdir -p /data/sql

[root@localhost ~]# ls

anaconda-ks.cfg

[root@localhost ~]#

[root@localhost /]# cp /etc/fstab /data/web   #将/etc/fstab 文件拷贝到/data/web 目录下

在172.20.26.24服务器上也安装rsync 服务

[root@bogon ~]# systemctl start rsyncd    #启动rsync服务

从172.20.26.198服务器上拉取web 模块中的文件到当前目录下

[root@bogon ~]# rsync -av 172.20.26.198::web .

也可以将本机上的文件(/etc/passwd)推送给172.20.26.198上的web模块里,因在172.20.26.198上的rsync.conf文件中配置了“read only = false  关闭只读权限”,否则会报错。

在172.20.26.198上查询推送过来的passwd文件

如果需要开启认证的话,需要定义虚拟用户和密码,配置到rsync.conf 文件中

[root@localhost /]# vim /etc/rsyncd.conf

如果使用的用户名和密码一样,可以写在全局里,也可以写到模块里,如果不一样,分别写到自己的模块里即可。

[root@localhost /]# echo "rsync:123456" >/etc/rsync.passwd

[root@localhost /]# chmod 600 /etc/rsync.passwd   #修改rsync.passwd 文件的权限,其他人和组不可读写

重启rsync 服务

[root@localhost /]# systemctl restart rsyncd

[root@bogon ~]# rsync -av /etc/yum.conf rsync@172.20.26.198::web

输入rsync 的密码 123456

在172.20.26.198上查询/data/web 目录下已经有yum.conf 文件

也可以将密码写进文件里,使用这个用户同步数据时不再需要输入密码。

[root@bogon ~]# echo "123456" > /etc/rsync.passwd    #将密码写入rsync.passwd 文件中

[root@bogon ~]# chmod 600 /etc/rsync.passwd  #取消其他人和组对rsync.passwd 文件读取权限

[root@bogon ~]# rsync -av /etc/virc rsync@172.20.26.198::web --password-file=/etc/rsync.passwd

在172.20.26.198上查询/data/web 目录下已经有virc 文件。

也可以设置允许某些服务器连接同步,拒绝其他的服务器连接同步。

目前172.20.26.167 服务器是可以将文件推送到172.20.26.198服务器上的,而我们可以设置只允许172.20.26.24 连接同步,拒绝172.20.26.167连接同步。

[root@localhost ~]# vim /etc/rsyncd.conf

[root@localhost ~]# systemctl restart rsyncd

在172.20.26.167上推送sysctl.conf文件到172.20.26.198上,被拒绝

[root@bogon ~]# rsync -av /etc/sysctl.conf rsync@172.20.26.198::web

我们修改172.20.26.198上的/etc/rsyncd.conf文件,把172.20.26.167 写到允许的hosts 里,即可让172.20.26.167也能向172.20.26.198服务器推送文件

[root@localhost ~]# vim /etc/rsyncd.conf

保存退出,重启rsync服务

[root@localhost ~]# systemctl restart rsyncd

回到172.20.27.167服务器上执行rsync命令,

 [root@bogon ~]# rsync -av /etc/sysctl.conf rsync@172.20.26.198::web

将syssctl.conf 推送到172.20.26.198服务器上的web模块中

我们在/etc/rsyncd.conf 里也配置了sql 模块,也创建了/data/sql 目录,我们也可以用这个模块进行实验。

rsync -av /etc/virc rsync@172.20.26.198::sql --password-file=/etc/rsync.passwd

sersync 实时数据同步

环境:

sersync服务器:172.20.26.24    配置sersync 把数据推给167、198

rsync服务器:172.20.26.167、172.20.26.198   配置rsync 接收数据

先在172.20.26.24服务器上配置sersync 服务

[root@bogon ~]# cd /usr/src

[root@bogon src]# rz

将sersync2.5.4_64bit_binary_stable_final.tar上传到172.20.26.24上,配置sersync服务

[root@bogon src]# tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz

将解压出来的GNU-Linux-x86目录移到/usr/local/sersync

[root@bogon src]# mv GNU-Linux-x86/ /usr/local/sersync 

 [root@bogon src]# cd /usr/local/sersync

[root@bogon sersync]# ls

confxml.xml  sersync2

/usr/local/sersync下只有confxml.xml、sersync2两个文件,一个是配置文件、一个可执行文件

[root@bogon sersync]# vim /usr/local/sersync/confxml.xml

将<fileSystem xfs="false"/>  改为 <fileSystem xfs="true"/>

Inotify 模块定义通知开始同步的条件:

<inotify>

        <delete start="true"/>     #开始删除的时候,默认为true

        <createFolder start="true"/>    #创建目录的时候,默认为true

        <createFile start="false"/>      #创建文件的时候,默认为false

        <closeWrite start="true"/>      #关闭写的时候,默认为true

        <moveFrom start="true"/>     #从---移动到的时候,默认为true

        <moveTo start="true"/>     #开始移动的时候,默认为true

        <attrib start="false"/>       #查询开始,默认为false

        <modify start="false"/>      #修改开始的时候,默认为false

    </inotify>

配置监控的目录,远程服务器IP地址,要监控的模块,我们之前定义设定的是web

将超时时间改为true

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

计划任务默认是false ,如果改为true,默认是600分钟做一次全量同步

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

开启认证,配置使用rsync 和密码文件

<auth start="true" users="rsync" passwordfile="/etc/rsync.passwd"/>

保存退出

[root@bogon sersync]# mkdir -p /data/jfedu          #创建jfedu目录

[root@bogon sersync]# ./sersync2 -d -r -o /usr/local/sersync/confxml.xml   #启动sersync 服务

检查172.20.26.167、172.20.26.198 rsync服务器的服务和目录是否都正常

由于172.20.26.167服务器上没有部署rsync ,可以从172.20.26.198上将rsync的文件拷贝过来

[root@bogon etc]# scp 172.20.26.198:/etc/rsync* /etc/

拷贝过来后检查一下rsyncd.conf 没有问题,重启服务

[root@bogon /]# chmod 600 /etc/rsync.passwd  #取消其他人和组对rsync.passwd 文件读取权限

创建/data/web 目录

172.20.26.198服务器上rsync 服务和目录都正常

回到172.20.26.24服务器上开始更新/data/jfedu里的数据

[root@bogon sersync]# cp /etc/fstab /data/jfedu/

172.20.26.167服务器上查看data/web 目录下已经有了fstab 文件

172.20.26.198服务器上查看data/web 目录下也已经有了fstab 文件

我们把/etc/passwd 也拷贝到/data/jfedu  ,查看同步情况

对passwd文件内容进行修改,查看同步情况

删除 root:x:0:0:root:/root:/bin/bash  这行信息

保存退出

在172.20.26.167和172.20.26.198上查看passwd文件里是已经没有刚才删除的信息:root:x:0:0:root:/root:/bin/bash

[root@bogon etc]# vim /data/web/passwd

[root@bogon sersync]# tail /tmp/rsync_fail_log.sh  #可以查看运行日志

查看sersync 进程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1406819.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2月重要外贸节日,可以开始计划营销了

快过年了&#xff0c;外贸小伙伴们终于可以好好休息了。享受2月春节假期的同时&#xff0c;咱们也别忘了客户所在国的节日&#xff0c;在国庆日、纪念日等重要日子&#xff0c;给客户们送上祝福。 2月4日 斯里兰卡-国庆日 National Day 斯里兰卡历史悠久&#xff0c;公元前4…

后台管理系统更新

菜单列表代码&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>菜单列表</title> <meta http-equiv"X-UA-Compatible" content"IEedge,chrome1"> <me…

Python的type()函数

在Python中&#xff0c;type()函数是一个非常有用的工具&#xff0c;它可以查看变量或对象的数据类型。了解如何使用type()函数对于编写高质量的Python代码非常重要&#xff0c;因为它有助于确保程序按预期运行&#xff0c;避免潜在的错误和异常。本文将深入探讨type()函数的用…

【ZYNQ入门】第九篇、双帧缓存的原理

目录 第一部分、基础知识 1、HDMI视频撕裂的原理 2、双帧缓存的原理 第二部分、代码设计原理 1、AXI_HP_WR模块 2、AXI_HP_RD模块 3、Block design设计 第三部分、总结 1、写在最后 2、更多文章 第一部分、基础知识 1、HDMI视频撕裂的原理 在调试摄像头的时候&#xf…

IMS 中的Implicit Registration

IMS Implicit Registration在23.228中有描述,在23.228中搜索关键字“Implicit Registration”直达,简单看下: 当用户具有一个public user ID set,通过该set 中的某个public user ID 进行单个IMS注册来Implicit Registration的public user ID时,它被视为Implicit Registrat…

npm或者pnpm或者yarn安装依赖报错ENOTFOUND解决办法

如果报错说安装依赖报错&#xff0c;大概率是因为npm源没有设置对&#xff0c;比如我这里安装protobufjs的时候报错&#xff1a;ENOTFOUND npm ERR! code ENOTFOUND npm ERR! syscall getaddrinfo npm ERR! errno ENOTFOUND npm ERR! network request to https://registry.cnpm…

时隔78天,个人微信小游戏内容审核终于通过了,这到底是经历了什么...

引言 大家好&#xff0c;就在前天&#xff0c;笔者惊讶地发现&#xff0c;去年提交的微信小游戏内容审核居然过审了&#xff01; 我们一起来看一下笔者都经历了什么&#xff1f; 以及了解下微信小游戏备案的具体流程是怎么样的&#xff1f; 回顾一下 先回顾一下&#xff0c…

Tree-Shaking 作用和实现原理

一、什么是Tree-shaking Tree-shaking 它的名字来源于通过摇晃&#xff08;shake&#xff09;JavaScript代码的抽象语法树&#xff08;AST&#xff09;&#xff0c;是一种用于优化JavaScript代码的技术&#xff0c;主要用于移除未被使用的代码&#xff0c;使得最终生成的代码包…

vue element MessageBox.prompt this.$prompt组件禁止显示右上角关闭按钮,取消按钮,及点击遮罩层关闭

vue element MessageBox.prompt this.$prompt组件禁止或取消显示右上角关闭按钮&#xff0c;取消按钮&#xff0c;及点击遮罩层关闭 实现效果&#xff1a; 实现代码 MessageBox.prompt(请先完成手机号绑定, 系统提示, {confirmButtonText: 提 交,showClose: false,closeOnClic…

解决TCP粘包问题

粘包问题已经在上一篇博客中写到具体可以看----------- 以下是利用分包解决粘包问题的步骤&#xff1a; 消息长度前缀&#xff1a; 在每个数据包前加入消息长度信息。 定义协议格式&#xff1a; 明确定义通信协议的格式&#xff0c;包括消息头和消息体。 封包&#xff1a; 将…

Tensorflow2 GPU版本-极简安装方式

Tensorflow2 GPU版本-极简安装方式&#xff1a; 1、配置conda环境加速 https://wtl4it.blog.csdn.net/article/details/135723095https://wtl4it.blog.csdn.net/article/details/135723095 2、tensorflow-gpu安装 conda create -n STZZWANG_TF2 tensorflow-gpu2.0

kali安装LAMP和DVWA

LANMP简介 LANMP是指一组通常用来搭建动态网站或者服务器的开源软件&#xff0c;本身都是各自独立的程序&#xff0c;但是因为常被放在一起使用&#xff0c;拥有了越来越高的兼容度&#xff0c;共同组成了一个强大的Web应用程序平台。 L:指Linux&#xff0c;一类Unix计算机操作…

4G物联网LED智慧路灯杆显示屏产品介绍

4GLED显示屏是一种具有4G网络连接功能的LED显示屏。它可以通过4G网络连接到互联网&#xff0c;实现远程管理和控制&#xff0c;方便进行内容更新和管理。同时&#xff0c;4GLED显示屏具有高亮度、高清晰度和高对比度的特点&#xff0c;可以提供清晰明亮的图像和视频展示效果。它…

jdk17新特性——文本块(即多行的字符串)增强

目录 一、文本块(即多行的字符串)概述二、文本块(即多行的字符串)示例2.1、jdk17之前 多行字符串处理方式2.2、jdk17及以后版本 多行字符串处理方式2.3、注意事项 三、文本块(即多行的字符串)转义字符示例3.1、jdk17及以后版本 多行字符串的转义字符处理方式示例一3.2、jdk17及…

基于GPT3.5逆向 和 本地Bert-Vits2-2.3 的语音智能助手

文章目录 一、效果演示二、操作步骤三、架构解析 一、效果演示 各位读者你们好&#xff0c;我最近在研究一个语音助手的项目&#xff0c;是基于GPT3.5网页版的逆向和本地BertVits2-2.3 文字转语音&#xff0c;能实现的事情感觉还挺多&#xff0c;目前实现【无需翻墙&#xff0…

数据结构之线性表(一般的线性表)

前言 接下来就开始正式进入数据结构环节了&#xff0c;我们先从线性表开始。 线性表 线性表&#xff08;linear list&#xff09;也叫线性存储结构&#xff0c;即数据元素的逻辑结构为线性的数据表&#xff0c;它是数据结构中最简单和最常用的一种存储结构&#xff0c;专门存…

springboot快速开始

创建和配置 下面是创建和配置项目, 可以看看, 但是本文重点是怎么开web接口和连接数据库, 所以可以直接从gitee上下载我配好的 gitee 创建项目 java配置 idea里可以下载java maven maven用来帮你管理项目需要的包(库), 不过要下载快需要配镜像, 请查阅网络资料 添加依赖…

缓存高并发问题

Redis 做缓存虽减轻了 DBMS 的压力&#xff0c;减小了 RT&#xff0c;但在高并发情况下也是可能会出现各种问题的。 缓存穿透 当用户访问的数据既不在缓存也不在数据库中时&#xff0c;就会导致每个用户查询都会“穿透”缓存“直抵”数据库。这种情况就称为缓存穿透。当高度发…

处理Eclipse验证读条问题

打开Eclipse后下方一直读条加载验证&#xff0c;强迫症受不了。 依靠互联网自动加载失败&#xff0c;手动放入缺失的文件&#xff0c;我这里是mybatis的一个dtd文件缺失。 打开Eclipse-XML下的catalog&#xff0c;选择缺失的文件&#xff0c;保存。 可能需要重启Eclise

代码随想录刷题题Day41

刷题的第四十一天&#xff0c;希望自己能够不断坚持下去&#xff0c;迎来蜕变。&#x1f600;&#x1f600;&#x1f600; 刷题语言&#xff1a;C Day41 任务 ● 583. 两个字符串的删除操作 ● 72. 编辑距离 ● 编辑距离总结篇 1 两个字符串的删除操作 583. 两个字符串的删除…