zoukankan      html  css  js  c++  java
  • rsync+innotify做到同步式更新

    innotify主要功能:

         他是内核用于通知用户控件程序文件系统变化的机制。

         也就是说,当服务器发生了任何的改动,内核都会知道并通知用户。

    rssync(做同步的)+innotify做到的就是实时的同步。

         首先,我们需要明白的rsync的工作机制,常用的工作模式有俩种:

              1,rsync客户端向服务器端推送文件。eg:

                   rsync -avz --progress /opt/ yangshuai@192.168.10.152::backup1 --password-file=/etc/rsyncd.secrets1

                        opt:客户端被推送文件所在的目录。

                        yangshuai@192.168.10.152::backup1   对端服务器的用户和IP,加上模块   

                        /etc/rsyncd.secrets1:本机的密码文件,只有密码。

             

              2,rsync客户端从服务器端下载文件。

                   rsync -vzrtopg  --password-file=/etc/rsyncd.secrets yangshuai@192.168.10.252::backup /opt

                        --password-file=/etc/rsyncd.secrets:本机的密码文件,只有密码.

                        yangshuai@192.168.10.252::backup   对端服务器的用户和IP,加上模块 

                        opt:   想要把从服务器端下载的文件存放的目录。

    要想利用rsync+innotify做到实时同步,我们可以用到的是rsync客户端向服务器端传送文件。

         客户端需要做的是安装rsync,并安装innotity模块。

         安装rsync:

                   yum -y install rsync

                   无需输入密码访问  echo "123456">>/etc/rsyncd.secrets

          安装innotity模块并写监控脚本:

                    将压缩包上传到客户端

                    解压:tar zvxf inotify-tools-3.13.tar.gz

                   编译安装: cd  inotify-tools-3.13

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

                                    make && make install

                   编写监控脚本:

                                    vi  rsync.sh

    #!/bin/bash

    src=/opt/

    des=backup1

    ip=192.168.10.152

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

           do

           rsync -vzrtopg --delete --progress $src yangshuai@$ip::$des --password-file=/etc/rsyncd.secrets1 &&

           echo "$src has been resynced"

           done

                   

                   执行监控脚本,并在后台执行

                   sh  rsync.sh  &

         

         服务器端做的配置:

         安装rsync,并编写配置文件:

         yum -y install rsync

         vi /etc/rsyncd.conf

    pid file = /var/run/rsyncd.pid

    port = 873

    address = 192.168.10.152    #主机的地址

    uid = root

    gid = root

    use chroot = yes

    read only = no

    write only = no

    hosts allow = *   #备份主机的地址

    hosts deny = *

    max connections = 10

    timeout = 300

    log file = /var/log/rsyncd.log

    transfer logging = yes

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

    [backup1]

    path=/opt/                    #被客户端推送的时候,是存放路径:被客户端下载的时候,是下载路径。

    list = yes

    ignore errors = yes

    auth users = yangshuai                                    #连接用户的名字

    secrets file=/etc/rsyncd.secrets

         编写密码文件并配置权限:

         vi  /etc/rsyncd.secrets

         yangshuai:123456

         chmod 600 /etc/rsyncd.secrets

         

         启动服务:

         rsync  --daemon

    现在整个rsync服务器就已经搭建好了,并且能做到实时同步。

    直接在客户端做测试就好了

    日常笔记,有问题的话请联系我531197592@qq.com

  • 相关阅读:
    如何快速部署Oracle Database
    有关Oracle统计信息的知识点
    索引的重建
    利用Openfiler配置基于文件系统的网络存储
    Linux命令(007) -- systemctl
    使用mysqldump导出数据库(表)
    文件处理.Windows.Fastcopy.3.50.x64.文件复制简体中文破解版(验证版)
    oracle 修改数据 保险方法
    oracle存储过程、声明变量、for循环--后期添加游标 if 、decode、 case when
    Oracle 游标使用全解
  • 原文地址:https://www.cnblogs.com/sexiaoshuai/p/7285096.html
Copyright © 2011-2022 走看看