rsync+inotify实现远程同步

  • rsync介绍

    rsync,英文全称是remote synchronize,是一款实现远程同步功能的免费软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息。 rsync提供了一个客户机和远程文件服务器的文件同步的快速方法,而且可以通过ssh方式来传输文件。甚至还可以实现只同步一个文件里有变化的内容部分,所以可以实现快速的同步备份数据。同时,rsync还可以实现同步本地数据、删除文件和目录的功能。

  • inotify介绍
  • Inotify 是一个 Linux 内核特性,它监控文件系统,并且及时向专门的应用程序发出相关的事件警告,比如删除、读、写和卸载操作等。您还可以跟踪活动的源头和目标等细节。

    • rsync+notify实现自动同步

    如果要实现定时同步数据,可以在客户端将rsync加入定时任务,但是定时任务的同步时间粒度并不能达到实时同步的要求。在Linux kernel 2.6.13后提供了inotify文件系统监控机制。通过rsync+inotify组合可以实现实时同步。

    • 实验要求:

    源服务器:192.168.177.132(rsync,httpd)

    发起端:192.168.177.132(rsync,httpd,inotify-tools)

    源服务器

    # rpm -q rsync  //查看rsync有没有安装
    # vim /etc/rsyncd.conf   //rsync的配置文件
    
     uid = nobody
     gid = nobody
     use chroot = yes
     address = 192.168.177.132
     port 873
     log file = /var/log/rsyncd.log
     pid file = /var/run/rsyncd.pid
     hosts allow = 192.168.177.0/24
    
     [wwwroot]
     path = /var/www/html
     comment = www.kgc.cn
     read only = yes
     dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
     auth users = backuper
     secrets file = /etc/rsyncd_users.db
    # vim /etc/rsyncd_users.db
      backuper:abc123  //账号跟密码的格式
    # chmod 600 /etc/rsyncd_users.db
    # yum install httpd -y   //安装web服务
    # rsync --daemon  //启动rsync服务
    # systemctl stop firewalld.service  //关闭防火墙
    # setenforce 0   //增强性安全功能
    # chmod 777 /var/www/html/
    # cd /var/www/html
    # echo "this is test" > 123.txt




    发起端

    # systemctl stop firewalld.service
    # setenforce 0  //必须先关闭防火墙
    交互,输入的是源服务器的地址
    # rsync -avz [email protected]::wwwroot /opt/
    免交互,无需输入密码
    # vim /etc/server.pass
    # chmod 600 /etc/server.pass
    # rsync -az --delete --password-file=/etc/server.pass [email protected]::wwwroot /opt
    

    rsync+inotify自动同步

    inotify装在发起端

    rsync在源服务器上

    源服务器:
    # vim /etc/rsyncd.conf
       read only = no
    # pkill -9 rsync
    # cd /var/run/
    # rm -rf rsyncd.pid //删除pid进程
    # rsync --daemon  //重启服务
    发起端:
    # chmod 777 /var/www/html/
    # tar zxvf inotify-tools-3.14.tar.gz -C /opt //解压
    # cd inotify-tools-3.14/
      ./configure
    # yum install gcc gcc-c++ -y  //安装编译环境
    # make && make install
    # vim /etc/sysctl.conf   //进行优化
    fs.inotify.max_queued_events = 16384
    fs.inotify.max_user_instances = 1024
    fs.inotify.max_user_watches = 1048576
    # sysctl -p   //立即生效
    # inotifywait -mrq -e modify,create,move,delete /var/www/html/  //对站点进行监控
    # vim /opt/inotify.sh  //编写能同步的脚本
    #!/bin/bash
    INOTIFY_CMD="inotifywait -mrq -e modify,create,attrib,move,delete /var/www/html/"
    RSYNC_CMD="rsync -azH --delete --password-file=/etc/server.pass /var/www/html/ [email protected]::wwwroot/"
    $INOTIFY_CMD | while read DIRECTORY EVENT FILE
    do
        if [ $(pgrep rsync | wc -l) -le 0 ] ; then
            $RSYNC_CMD
        fi
    done
    # chmod +x inotify.sh
    # ./inotify.sh




    原文地址:http://blog.51cto.com/13620936/2150401

    时间: 2024-10-11 08:34:40

    rsync+inotify实现远程同步的相关文章

    利用rsync+inotify实现数据同步

    利用rsync+inotify实现数据同步 一.rsync概念: rsync是Linux系统下文件同步可数据传输的工具,采用rsync算法使客户机与服务器,主服务器与 备份服务器数据同步.rsync也能实现中断后恢复传输.rsync支持增量备份. 二.rsync的模式: 1.本地模式. 2.远程shell模式 3.查询模式 4.C/S模式 安装rsync: tar xvf rsync-3.0.9.tar.gz cd rsync-3.0.9 ./configure make && make

    CentOS6.4_64位下搭建Rsync+Inotify实现实时同步

    CentOS6.4_64位下搭建Rsync+Inotify实现实时同步 rsync是linux下的文件同步服务,功能简单来说就是服务端打开873端口,客户端连接这个端口,并对服务器端配置的目录进行同步,可以理解为客户端比对服务器端资源后,对增量或者差异的数据进行增删改操作,功能支持上传(推送)或下载(获取)比对,也就是远程数据比对本地数据而后对远程数据进行增删改操作,以及本地数据比对远程数据然后对本地数据进行增删改操作. centos6.4下默认已经安装,只需保证依赖服务xinetd开启即可.

    Zabbix监控系列之-Rsync+Inotify实现文件同步更新(无防火墙版)

    Rsync+inotify实现文件同步更新(无防火墙版) 目录 说明:... 2 准备工作:关闭服务器的防火墙... 2 关闭防火墙firewall2 禁止开机启动防火墙... 2 编写脚本"shut-firewall.sh". 2 发布服务器配置rsync:192.168.171.128. 2 安装配置Rsync. 2 配置rsyncd.conf文件... 2 创建认证文件:/etc/rsyncd.secrets. 3 设置文件权限... 3 启动rsync服务... 4 关闭rsy

    rsync+inotify实现文件同步

    什么是rsync,remote synchronize远程同步简写.Linux系统上由rsync这个软件包提供.rsync有几个特点,镜像保存整个文件目录树或文件系统:有较高的数据传输效率:可以借助ssh实现安全数据传输:支持匿名传输等.rsync同步只是针对变化的文件进行传输,意味着其会在源和目标之间比较文件的异同.相对与scp来说,第一次传输两边都效率都差不多.但以后传输相同目录下的文件时,rsync只传输变化的文件,而非像scp直接覆盖.inotify是linux的一种文件变化通知机制,用

    rsync+inotify实现远程数据备份

    一.rsync的基本介绍 1.  什么是rsync Rsync是一款开源的.快速的.多功能的.可以实现增量的本地货远程数据镜像同步备份的优秀工具,Rsync使用与unix,linux,windows等多种平台 2.  Rsync的特性 1)  支持拷贝特殊文件 2)  可以有排除指定文件或目录 3)  可以保持原来文件或目录的权限 4)  可以实现增量同步,即只同步变化的数据 5)  可以使用rcp,ssh等方式配合传输文件 6)  支持匿名或认证的进程模式传输 7) 传输前会进行压缩,适合异地

    rsync的简单介绍及rsync+inotify实现实时同步更新

    Rsync的简单介绍及rsync+inotify实现实时同步更新 rsync是类unix系统下的数据镜像备份工具--remotesync.一款快速增量备份工具 Remote Sync,远程同步支持本地复制,或者与其他SSH.rsync主机同步.Rsync是超级进程来管理的,服务端口为873. 特点: 1.可以镜像保存整个目录树或文件系统: 2.有较高的数据传输效率: 3.可借助于SSH实现安全数据传输: 4. 支持匿名传输 工作模式: 1.shell模式,也称作本地模式 2.远程shell模式,

    第三十四天-rsync+inotify实现实时同步案例

    推荐: Rsync结合Inotify 实时同步配置 rsync+inotify实现实时同步案例 rsync+inotify实现多台服务器之间数据实时同步 Linux下Rsync+Inotify-tools实现数据实时同步

    rsync+inotify实时数据同步单目录实战

    rsync+inotify实时数据同步单目录实战 inotify是一个强大的.细粒度的.异步的文件系统事件监控机制,linux内核从2.6.13起加入了inotify支持,通过inotify可以监控文件系统中添加.删除.修改.移动等各种事件,利用这个内核接口,第三方软件可以监控文件系统下文件的各种变化情况,而inotify-tools正是实施监控的软件. inotify配置是建立在rsync服务基础上的配置过程 操作系统 主机名 网卡eth0 默认网关 用途 [email protected]

    linux rsync +inotify 实现 实时同步

    前言:     rsync可以实现触发式的文件同步,但是通过crontab守护进程方式进行触发,同步的数据和实际数据会有差异,而inotify可以监控文件系统的各种变化,当文件有任何变动时,就触发rsync同步,这样刚好解决了同步数据的实时性问题. 一.基本环境 系统:CentOS 2.6.32-220.el6.x86_64软件包版本:rsync-3.0.6-12.el6.x86_64                    inotify-tools-3.14 下载链接:百度   inotify