`
liu86th
  • 浏览: 118316 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

ECS多主机之间文件同步rsync+inotify

 
阅读更多

1. 环境 

 [1] server1:10.0.0.0.200 -> Rsync服务端,需要配置rsync.conf

 [2] server2: 10.0.0.0.201 -> Rsync服务端,需要配置rsync.conf

 [3] 数据发布端: 10.0.0.202 -> Rsync客户端(不需要配置rsync.conf) + inotify(实时监听文件变化,实时通过rsync推送更新到服务器)

 

2. 准备

 [1] 关闭firewalld,永久关闭selinux, 没开启跳过

 [2] 安装依赖包

 

 # yum install -y lrzsz gcc wget gcc-c++ vim

 

 

3. 服务端安装

 [1] 安装rsync

 

#yum install -y rsync

 [2] 更改配置

 

 

#vim /etc/rsyncd.conf

 [3] 配置内容rsyncd.conf

#vim /etc/rsync.password
 #chmod 600 /etc/rsync.password

 

 

#工作中指定用户(可以不指定为0, 不能是nobody)
uid = 0
gid = 0
#相当于黑洞.出错定位
use chroot = no
##有多少个客户端同时传文件
max connections =200
##超时时间
timeout = 300
##进程号文件
pid ifle = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
##日志文件
log file = /var/log/rsyncd.log
##模块开始(这个模块就是待会儿对端写脚本的里面一个参数的名称)
[msone]
##需要同步的目录(准确的说是同步过来后放到哪里的目录路径)
path = /home/wwwroot
##表示出现错误忽略错误
ignore errors
##表示网络权限可写(本地控制真正可写)(亲测这里写false报错)
read only = no
##这里设置IP或让不让同步
list = false
#允许的ip或者ip段
hosts allow = 0.0.0.0/32
##拒绝,以下表示都不拒绝
hosts deny = 0.0.0.0/32
##认证用户
auth users = rsynclsl
##用户名和密码存放文件
secrets file = /etc/rsync.secrets

 

 

[4] 添加同步需要用的用户名和密码(123456)

 

#useradd -s /sbin/nologin rsynclsl
 #passwd rsynclsl 

 

 

[5] 创建认证文件, 为了安全起见给这个文件设置600权限。

 

#vim /etc/rsync.secrets
 文件里面添加如下内容(格式为用户名:密码):
 rsynclsl:123456
 #chmod 600 /etc/rsync.secrets

 [6] 同步目录

 

 

#mkdir /home/wwwroot
 #chmod 765 /home/wwwroot

 

 

4. 客户端安装

[1] 安装rsync和inotify(rsync只安装不启动不配置)

 

#yum install -y rsync
 #yum install -y inotify-tool

 [2] 创建/etc/rsync.password文件(整个文件需要600的权限和服务端rsync同步用户的密码,这里是服务器端rsynclsl用户的密码)

#vim /etc/rsync.password
 #chmod 600 /etc/rsync.password

 [3] 测试rsync配置是否成功安装

#rsync -avH --port=873 --delete  /home/wwwroot/  rsynclsl@10.0.0.201::msone  --password-file=/etc/rsync.password

  [4] 编写inotify触发同步脚本:

#!/bin/bash
#chkconfig: 345 88 14
src_dir="/home/wwwroot/"
dst_dir="msone"
exclude_dir="/home/shell/inotify/exclude.list"
rsync_user="rsynclsl"
rsync_pass="/etc/rsync.password"
dst_ip="10.0.0.200 10.0.0.201"

rsync_command(){
    rsync -avH --port=873 --progress --delete --exclude-from=$exclude_dir $src_dir $rsync_user@$ip::$dst_dir --password-file=$rsync_pass
}

for ip in $dst_ip;
do
    rsync_command
done
/usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,modify,delete,create,attrib,move $src_dir | while read file;
do
   for ip in $dst_ip;
   do
       rsync_command
       datetime=`date +"%Y%m%d"`
       echo "${file} was rsynced" >> /home/shell/inotify/log/${datetime}.log 2>&1
   done
done

  [5] 配置开机启动同步脚本

(1)#vim /etc/rc.d/rc.local
 追加内容: nohup /bin/sh /home/shell/inotify/rsync.sh &
 
 (2)在centos7中,/etc/rc.d/rc.local的权限被降低了,所以需要执行如下命令赋予其可执行权限
 #chmod +x /etc/rc.d/rc.local

 

 

 

分享到:
评论

相关推荐

    rsync+inotify实现服务器之间文件实时同步

    rsync+inotify实现服务器之间文件实时同步 rsync+inotify是一种实现服务器之间文件实时同步的解决方案,该方案可以实时监控文件系统的变化,并将变化同步到备份服务器中,保障数据的一致性和实时性。 rsync是一种...

    CentOS下用rsync+inotify实现实时同步

    它可以在本地或远程主机之间同步文件,具有高效、可靠、安全等特点。rsync使用了 delta encoding 算法,可以减少数据传输量,提高同步速度。 2. inotify简介 inotify是一种强大的、细粒度的、异步的文件系统事件...

    rsync+inotify.zip

    标题中的"rsync+inotify.zip"提示我们这个压缩包包含的是两个工具——rsync和inotify的软件源代码。这两个工具在IT行业中主要用于自动化文件和目录的监控以及同步。 rsync是Linux/Unix系统中广泛使用的数据同步工具...

    rsync+inotify实现服务器之间目录文件实时同步

    ### rsync+inotify 实现服务器之间目录文件实时同步 #### 软件简介与应用场景 **rsync** 是一种高效且广泛使用的文件同步工具,主要用于远程数据备份、镜像和迁移场景。相较于传统的 `cp` 和 `tar` 备份方式,...

    Centos6.3下rsync+inotify安装配置

    通过 rsync+inotify 的方式,我们可以实现高效、实时的文件系统同步,尤其适用于文件频繁更改且数量庞大的场景。这种方式避免了定期全量扫描的消耗,提高了系统资源利用率和同步速度。不过,在实际部署中,务必考虑...

    rsync+inotify 实时远程同步

    在服务器之间同步文件时,Rsync 是一个不二之选。Inotify 是一个 Linux 内核提供的文件系统事件监控机制,它可以实时监控文件系统的变化,从而实现实时同步。 本文将详细介绍如何使用 Rsync + inotify 实现实时远程...

    rsync+inotify说明.docx

    rsync+inotify是一个高效且实用的文件实时同步方案,广泛应用于服务器之间的数据备份和同步。rsync是一款强大的文件复制工具,而inotify则是Linux内核提供的一个文件系统事件监控接口。通过结合两者,可以实现对文件...

    rsync+inotify开机自启动实时同步增量备份

    rsync+inotify开机自启动实时同步增量备份是通过使用rsync与inotify结合来实现Linux系统中文件的实时同步和增量备份。rsync是一个快速且灵活的文件传输工具,而inotify则是一个内核特性,它可以监控文件系统的变化。...

    rsync+inotify实时同步用到的资源

    在多机协作项目中,可以保证团队成员之间的文件同步。 总的来说,rsync+inotify实时同步方案是一个强大且灵活的数据同步解决方案,尤其适合对实时性要求高的场景。通过熟练掌握这两个工具的使用,我们可以构建出...

    rsync+inotify 文件同步自动配置安装

    rsync+inotify 文件同步自动配置安装shell,包含inotify3.14的源包,自动安装后可以实现/etc/init.d/rsyncd start|stop 脚本自动复制,在启动关闭时候同时启动关闭inotify监控shell脚本,请使用时认真阅读安装脚本,...

    两台linux服务器目录实时同步(Rsync+Inotify)

    本文将详细介绍如何通过结合`Rsync`与`Inotify`这两种强大工具,在两台Linux服务器之间实现实时目录同步。 #### 二、Rsync简介 `Rsync`是一种用于文件传输的高效工具,它支持增量备份,即只传输两个文件差异的部分...

    rsync+inotify实现远程文件时时同步

    rsync+inotify实现远程文件时时同步,实现多台服务器的文件同步

    rsync+inotify实现数据的实时备份.pdf

    rsync 使用所谓的“rsync 算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。 二、rsync 功能及特点 rsync 的功能包括: 1. 实现本地-...

    一键实现rsync+inotify的小脚本

    自创(不喜勿喷):通过rsync+inotify两个服务自动化实现实时同步的脚本 方便linux使用者使用的脚本,望大佬完善信息,但不要搞破坏,谢谢使用 #### 软件架构 软件架构说明 ssh免密 rsync+inotify两个服务结合 ###...

Global site tag (gtag.js) - Google Analytics