场景: 主从服务器项目文件实时双向同步(参考:http://www.xcx1024.com/ArtInfo/3026389.html)

一.rsync安装

  yum在线:

        yum install -y rsync

  离线:

        cd /usr/local

        wget https://download.samba.org/pub/rsync/src/rsync-3.1.2.tar.gz

        tar -zxvf rsync-3.1.2.tar.gz

        cd rsync-3.1.2

        ./configure --prefix=/usr/local/rsync

        make

        make install

二. 创建rsync配置文件

   yum在线:

        vi /etc/rsyncd.conf

   离线:

        vi /usr/local/rsync/rsyncd.conf

配置文件内容:

        #rsync通用配置文件,配置的注释不要写在配置后面,否则会有问题

        uid = root

        gid = root

        use chroot = 0

        port = 873

        #允许ip访问设置,请根据实际需要进行配置,这里为了方便设为全网段 *

  # hosts allow = 192.168.0.1/255.255.255.0 198.162.145.1 10.0.1.0/255.255.255.0

        hosts allow = *

        max connections = 0

        timeout = 300

        pid file = /var/run/rsyncd.pid

        lock file = /var/run/rsyncd.lock

        log file = /var/log/rsyncd.log

        log format = %t %a %m %f %b

        transfer logging = yes

        syslog facility = local3

        #方括号中为模块声明,对应命名,这里master_web对应了主web机配置

        [master_web]

        #指定当前模块在rsync服务器上的同步路径,该参数是必须指定的

        path = /app/web/data-share/static/

        #注释,可以同模块名一样,从服务器可都为slave_web

        comment = master_web

        ignore errors

        #是否允许客户端上传文件

        read only = no

        list = no

        #指定由空格或逗号分隔的用户名列表,只有这些用户才允许连接该模块

        auth users = rsync

        #保存密码和用户名文件,需要自己生成

        secrets file = /etc/rsyncd.passwd

三. 创建用户名密码文件

     yum在线:

        vi /etc/rsyncd.passwd

        vi /root/rsyncd.passwd

     离线:

        vi /usr/local/rsync/rsyncd.passwd

        vi /root/rsyncd.passwd

文件内容:

 #/etc/rsyncd.passwd中内容格式 用户名:密码 ,两台服务器设置相同的用户名密码 rsync:123456

#/root/rsyncd.passwd中内容只需要填写从服务器的密码,两台服务器设置相同的密码 123456

四.给文件赋权限

   Yum在线:

    chmod 600 /etc/rsyncd.passwd

    chmod 600 /root/rsyncd.passwd

   离线:

    chmod 600 /usr/local/rsync/rsyncd.passwd

    chmod 600 /root/rsyncd.passwd

 

五.以守护进程方式启动rsync服务

  Yum在线:

    /usr/bin/rsync --daemon --config=/etc/rsyncd.conf

   离线:

    /usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/rsyncd.conf

 

六.添加开启自启动

   yum在线:

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

    离线:

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

 

 

七. 验证是否可以手动同步

# master_web 为从web服务器的 rsyncd.conf 中配置的模块名,

# rsync 为从web服务器的中 rsyncd.passwd 中配置的用户名

78服务器给79服务器同步:

rsync -vzrtopg --delete --progress /usr/local/data-share/static/ rsync@xx.xx.xx.79::master_web --password-file=/root/rsyncd.passwd

定时任务:

 echo '*/1 * * * * rsync -vzrtopg --delete --progress /usr/local/data-share/static/ rsync@xx.xx.xx.79::master_web --    password-file=/root/rsyncd.passwd > /dev/null 2>&1 &' >> /var/spool/cron/root

79服务器给78服务器同步:

rsync -vzrtopg --delete --progress /usr/local/data-share/static/ rsync@xx.xx.xx.78::master_web --password-file=/root/rsyncd.passwd

定时任务:

echo '*/1 * * * * rsync -vzrtopg --delete --progress /usr/local/data-share/static/ rsync@xx.xx.xx.78::master_web --password-file=/root/rsyncd.passwd > /dev/null 2>&1 &' >> /var/spool/cron/root

 

 

八.安装inotify

wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz --no-check-certificate

    tar -zxvf inotify-tools-3.14.tar.gz

    makedir /usr/local/inotify

    cd inotify-tools-3.14.tar.gz

    ./configure --prefix=/usr/local/inotify

    make && make install

# 查看是否安装成功

  ls -alh /usr/local/inotify/bin/inotify*

# 建立软连接

   ln -s /usr/local/inotify/bin/inotifywait /usr/bin/inotifywait

    ln -s /usr/local/inotify/bin/inotifywatch /usr/bin/inotifywatch

 

 

九.创建并配置inotify_back.sh

vi /usr/local/inotify/inotify_back.sh

配置文件内容:

78服务器:

    #!/bin/bash

    src=/app/web/data-share/static/

    /usr/local/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,delete,create,attrib $src | while read file

    do

    rsync -vzrtopg --delete --progress /usr/local/data-share/static/ rsync@172.20.14.79::master_web --password-file=/root/rsyncd.passwd

    echo "${file} was rsynced" >> /tmp/rsync.log 2>&1

    done

79服务器:

    #!/bin/bash

    src=/app/web/data-share/static/

    /usr/local/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,delete,create,attrib $src | while read file

    do

    rsync -vzrtopg --delete --progress /usr/local/data-share/static/ rsync@172.20.14.78::master_web --password-file=/root/rsyncd.passwd

    echo "${file} was rsynced" >> /tmp/rsync.log 2>&1

    done

 

 

十.给inotify_back.sh脚本赋予可执行权限

chmod +x inotify_back.sh

十一.运行inotify_back.sh同步监控脚本和配置守护进程

   nohup ./inotify_back.sh &

    #建立守护进程运行inotify_back.sh脚本

    echo "nohup ./inotify_back.sh &" >> /etc/rc.local

 

 

注意点:

开放873端口

创建同步用户(useradd rsync , 并配置密码passwd rsync)

服务器间文件实时双向同步(rsync+inotify)的更多相关文章

  1. unison + inotify 实现文件实时双向同步部署步骤

    unison + inotify 实现文件实时双向同步部署步骤 一. Unison简介 Unison是Windows.Linux以及其他Unix平台下都可以使用的文件同步工具,它能使两个文件夹(本地或 ...

  2. Linux服务器间文件实时同步的实现

    使用场景 现有服务器A和服务器B,如果服务器A的指定目录(例如 /home/paul/rsync/ )中的内容发生变更(增删改和属性变更),实时将这些变更同步到服务器B的目标目录中(例如 /home/ ...

  3. rsync+sersync+inotify实现服务器间文件同步之一

    rsync+sersync+inotify实现服务器间文件同步之一:rsync安装配置 2013年12月14日 ⁄ Linux管理, 服务器集群技术 ⁄ 共 4925字 ⁄ rsync+sersync ...

  4. 实时同步rsync+inotify

    实时同步rsync+inotify 原创博文http://www.cnblogs.com/elvi/p/7658071.html #linux同步 #实时同步rsync+inotify,双向同步ino ...

  5. 用KeePass管理密码并用Synology_Drive或者GoodSync实时双向同步电脑桌面和群晖NAS2021年8月5日

    用KeePass管理密码并用Synology_Drive或者GoodSync实时双向同步电脑桌面和群晖NAS2021年8月5日 我通常会把所有办公文档.办公表格和办公图片都实时同步保存到 Synolo ...

  6. 使用inotify+rsync实现服务器间文件同步

      1. rsync 1.1 什么是rsync   rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.它使用所谓的“Rsync演算法”来使本地和远程两个主机之间的文件达到 ...

  7. linux系统中rsync+inotify实现服务器之间文件实时同步

    最近需要对服务器上的文件实施动态备份,我又不想每次都手动来进行备份,在网上找了挺多资料,发现使用rsync就可以实现,如果想要实现实时同步,还可以使用rsync+inotify组合,本文就是以组合方式 ...

  8. rsync+inotify实现服务器之间文件实时同步--转

    之前做了“ssh信任与scp自动传输脚本”的技术文档,此方案是作为公司里备份的方法,但在实际的运行中,由于主服务器在给备份服务器传输的时候,我们的主服务器需要备份的文件是实时.不停的产生的,造成不知道 ...

  9. centos6.5 rsync+inotify实现服务器之间文件实时同步

    1. rsync的优点与不足 与传统的cp.tar备份方式相比,rsync具有安全性高.备份迅速.支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据 ...

  10. linux下rsync+inotify实现服务器之间文件实时同步

    先介绍一下rsync与inotify. 1.rsync 与传统的cp.tar备份方式相比,rsync具有安全性高.备份迅速.支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例 ...

随机推荐

  1. Angular Material 18+ 高级教程 – CDK Observers

    前言 Observers 是 Angular Material 对游览器原生 MutationObserver 的上层封装.主要用于监听 add/remove Node. 不熟悉的朋友可以先看这篇 D ...

  2. SQL Server – Trigger 触发器

    参考: SQLServer触发器详解(概述.工作原理.应用) CREATE TRIGGER (Transact-SQL) SQL Server Triggers and Transactions 以前 ...

  3. 新题速看!2021阿里、腾讯、字节都在问的SQL数据库笔试题及答案都给你整理好啦!

    ​    前  言 2021到了最后一个月份,年后肯定有蛮多小伙伴需要跳槽换工作,但对于年限稍短的软件测试工程师,难免会需要进行笔试,而在笔试中,基本都会碰到一道关于数据库的大题,今天这篇文章呢,就收 ...

  4. Unity中的光源类型(向前渲染路径进行光照计算)

    Unity中的光源类型 Unity中共支持4种光源类型: 平行光 点光源 聚光灯 面光源(在光照烘焙时才可以发挥作用) 光源的属性: 位置 方向(到某个点的方向) 颜色 强度 衰减(到某个点的衰减) ...

  5. 如何创建一个Java游戏客户端

    创建一个完整的Java游戏客户端示例是一个相对复杂的任务,因为它通常涉及图形用户界面(GUI).事件处理.游戏逻辑等多个方面.为了简化,我将提供一个基于Java Swing的简单游戏客户端示例:一个简 ...

  6. 第27天:安全开发-PHP应用&TP框架&路由访问&对象操作&内置过滤绕过&核心漏洞 - Shortcut

    https://www.kancloud.cn/manual/thinkphp5_1/354000 ThinkPHP-Vuln-master

  7. AE cc 2017 和 2018 中英文切换的方法

    AE cc 2017中文切换英文的方法 找到AE的安装文件目录下的"Support Files"文件夹,路径为 C:\Program Files\Adobe\Adobe After ...

  8. Salesforce AI Specialist篇之 Einstein Trust Layer

    本篇参考: https://trailhead.salesforce.com/content/learn/trails/drive-productivity-with-einstein-ai http ...

  9. 墨天轮访谈 | 腾讯张铭:带你揭秘王者荣耀背后的游戏数据库 TcaplusDB

    分享嘉宾:张铭 腾讯数据库专家工程师,TcaplusDB产品负责人 整理:墨天轮社区 导读 大家好,我是腾讯TcaplusDB的产品负责人张铭,TcaplusDB是专为游戏设计的分布式 NoSQL 数 ...

  10. vue合计行添加点击事件

    项目开发中做统计报表的时候,用到了合计功能.这个直接添加el-table已经封装好的show-summary属性就可以,但是如何给合计单元格添加点击事件呢?@cell-click="cell ...