zoukankan      html  css  js  c++  java
  • rsync+inotify实现文件同步更新(配置)

    linux下为了数据安全或者网站同步镜像,不得不考虑一些实时备份的问题,这篇linux下通过rsync+inotify 实现数据实时备份配置过程记录下来,防止遗忘配置过程记录下来,防止遗忘!如有建议技术支持QQ群555245732 配置架构如下: 


    本文出处参考:http://www.jbxue.com/article/10493.html
    一.安装步骤(服务器端192.168.0.5)

    1) 安装rsync 点击下载rsync-3.0.9.tar.gz
       下载文件放到该目录下/usr/src
       #cd /usr/src
       #tar -zxvf rsync-3.0.9.tar.gz //解压文件
       #cd rsync-3.0.9 //进入该文件目录
       #./configure //主要的作用是对即将安装的软件进行配置,检查当前的环境是否满足要安装软件的依赖关系
       #make //编译
       #make install //安装

    2)安装inotify  点击下载inotify-tools-3.14.tar.gz
       下载文件放到该目录下/usr/src
       #cd /usr/src
       #tar -zxvf inotify-tools-3.14.tar.gz //解压文件
       #cd inotify-tools-3.14 //进入该文件目录
       #./configure //主要的作用是对即将安装的软件进行配置,检查当前的环境是否满足要安装软件的依赖关系
       #make //编译
       #make install //安装

    3)服务端编写文件夹监视脚本
      #vi /srv/rsync.sh
      rsync.sh内容如下:
      #!/bin/bash
      src=/srv/test/   #监视改文件路径,文件夹内容发生改变触发服务器数据同步
      des=backup       #客服端配置的模块(客服端会介绍)
      host="192.168.10.6"  #同步到的IP地址,如有多个用空格隔开。例如:host="192.168.10.6 192.168.10.7"
      /usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e              modify,delete,create,attrib $src | while read files #这边要主要下inotifywait,只有Linux 2.6.13 或更高版的才会兼容
      do
      for hostip in $host
      do
      #rsync -vzrtopg --delete --progress rsync@$hostip::$des $src --password-file=/etc/rsync.pas 该命令是客服端跟新后同步到服务器端
      rsync -vzrtopg --delete --progress --password-file=/etc/rsync.pas $src rsync@$hostip::$des #改命令是服务器端跟新后同步到客服端(看具体使用情况选择)
    #--password-file=/etc/rsync.pas 配置到客服端,也就是客户端路径下有rsync.pas 用于配置登陆密码
    #rsync 是客户端配置的登陆名
      done
      echo "${files} was rsynced" >>/tmp/rsync.log 2>&1  #生成日志文件
      done

    4)启动nohup
      #nohup /bin/bash /srv/rsync.sh &  //后台不挂断地运行命令
      #echo "nohup /bin/bash /root/bin/rsync.sh &" >> /etc/rc.local //设置linux服务器启动自动启动nohup

      rsync + inofity服务端就配置好了,接下来我们来配置客服端

    二.安装步骤(客服端)

    1) 安装rsync 步骤如上!
    2)配置rsyncd.conf
      #vi /etc/rsyncd.conf //打开rsyncd.conf
      rsyncd.conf内容如下:
      uid = root
      gid = root
      port = 873 #post rsync使用的端口号  也是默认端口号 www.jbxue.com
      hosts allow = 192.168.10.5          #allow hosts ip 应许的ip访问,也可以设置为ip段
      max connections =
      timeout=

      ##config file
      pid file = /var/run/rsyncd.pid
      lock file = /var/run/rsync.lock
      log file = /var/log/rsyncd.log
      #motd file = /etc/rsyncd.motd

      ##global config
      [backup]
      path =/srv/test  #客服端已rsync服务端同步的文件路径
      comment = from 192.168.10.5  #解释
      read only = no
      list = no
      ##client sync config
      auth users =rsync  #配置登陆名称
      secrets file = /etc/rsync.passwd  #配置用户名密码文件

    3)配置rsync.passwd
      #vi /etc/rsync.passwd
      rsync.passwd内容如下:
      rsync:cyc  #rsync登陆用户名  cyc是登陆密码 
      #chomd 600 rsync.passwd #需要注意rsync.passwd的权限配置 
      客服端配置完成!

    三.如果再配置过程中出现如下问题,分析出错原因。

     问题一:
     @ERROR: chroot failed
     rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]

     原因:
     服务器端的目录不存在或无权限,创建目录并修正权限可解决问题。

     问题二:
     @ERROR: auth failed on module backup
     rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]

     原因:
     服务器端该模块(backup)需要验证用户名密码,但客户端没有提供正确的用户名密码,认证失败。
     提供正确的用户名密码解决此问题。

     问题三:
     @ERROR: Unknown module ‘backup'
     rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]

     原因:
     服务器不存在指定模块。提供正确的模块名或在服务器端修改成你要的模块以解决问题。

  • 相关阅读:
    [BUUCTF]PWN14——not_the_same_3dsctf_2016
    flask cookie
    关于cookie和session
    mysql修改表操作
    MySQL 增删改查
    mysql数据类型
    python读写mysql
    聚合查询
    条件查询
    排序
  • 原文地址:https://www.cnblogs.com/2017sss/p/5824658.html
Copyright © 2011-2022 走看看