专栏首页CaiRuirsync+inotify实时同步

rsync+inotify实时同步

1.rsync

与传统的cp、tar备份方式相比,rsync具有安全性高、备份迅速、支持增量备份的优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据到远端服务器,对本地磁盘定期做数据镜像等。

随着应用系统规模不断的扩大,对数据安全性和可靠性也提出了更高的要求,rsync在高端业务中也逐渐暴露出许多不足。首先,rsync实时同步时,需要扫描所有的文件进行比对,进行差量传输。如果文件数量打到了百万甚至千万量级,扫描所有的文件是非常耗时的,而且正在发生变化的往往是其中很少一部分,这是非常低效的方式。其次,rsync不能实时监测、同步数据。虽然它可以通过linux守护进程的方式进行出发同步,但是两次出发动作一定会有时间差,这样就导致了服务端和客户端出现不一致,无法在应用故障时完全的恢复数据。基于以上原因,rsync+inotify就出现了!

2.inotify(监控)

inotify是一种强大的、细粒度的、异步的文件系统事件监控机制。通过inotify可以监控文件系统中的添加、删除、修改、移动等各种细微事件,利用这个内核借口,第三方软件就可以监控文件系统下的各种情况变化,而inotify-tools就是这样的一个第三方软件。

一、服务端配置(只需要安装rsync)

共享到/tmp/下:

1.添加虚拟用户useradd rsync -s /sbin/nologin

  chown -R rsync.rsync /tmp/

2.配置rsyncd.conf配置文件

vim rsyncd.conf

#rsync_config_______________start

#rsyncd.conf start##

uid = rsync(用户)

gid = rsync(用户)

use chroot = no(防止出现安全问题)

max connections = 200(有多少个客户端可以连接我这个备份服务器)

timeout = 300(超时,多长时间没有动作就断掉连接)

pid file = /var/run/rsyncd.pid(进程号,将进程号放在这个文件里)

lock file = /var/run/rsync.lock(相当于“锁”的概念,上厕所锁门的概念)

log file = /var/log/rsyncd.log(出错了,可以查看log日志文件)

[tmp](模块)

path = /tmp/(路径)

ignore errors(忽略错误)

read only = false(只读为假,可读,可写的意思)

list = false(不允许列表)

hosts allow = 10.0.0.0/24(允许的主机)

hosts deny = 0.0.0.0/32(拒绝的主机)

auth users = rsync_backup(支持虚拟用户)

secrets file = /etc/rsync.password(用户对应的密码文件)

#rsync_config_______________end

3.建立密码文件

 echo “rsync_backup:123456” >/etc/rsync.password

凡是密码文件全部600权限 chmod 600 /etc/rsync.password

4.rsync --daemon daemon模式启动

5.将rsync --daemon加入/etc/rc.local

  echo “/usr/bin/rsync --daemom” >>/etc/rc.local

二、客户端配置

安装rsync和inotify

1.安装rsync(yum安装即可)

2.建立密码认证文件

echo “123456” >/etc/rsync.password 只需要密码

设置权限600 chmod 600 /etc/rsync.password

3.安装inotify:

  cd /home/cai/tools/

wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-too

   54  tar xf inotify-tools-3.14.tar.gz

   55  ls

   56  cd inotify-tools-3.14

   57  ./configure --prefix=/usr/local/inotify-tools-3.14

   58  make && make install

   59  yum install -y gcc

   60  ./configure --prefix=/usr/local/inotify-tools-3.14

   61  make && make install

   62  cd /usr/local/inotify-tools-3.14/

   63  ls

   64  ln -s /usr/local/inotify-tools-3.14/ /usr/local/inotify

4.脚本都是放在/server/scripts下

 vim /server/scripts/rsync.sh

#!/bin/sh

host=192.168.76.129

src=/tmp/

des=tmp

user=rsync_backup

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

while read files

do

/usr/bin/rsync -avz --delete $src $user@$host::$des --password-file=/etc/rsync.password

echo "${files} was rsynced" >>/var/log/rsyncd.log 2>&1

done

exit o

~           

并给予764权限

测试脚本:sh -x /server/scripts/rsync.sh

运行脚本:sh /server/scripts/rsync.sh &

将rsync.sh脚本放入到开机启动项中:echo “/tmp/rsync.sh” >>/etc/rc.local

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python模块

    简介: 模块:用一坨代码实现了某个功能的代码集合。分为三种: 自定义模块 第三方模块 内置模块 python去找模块的路径 ? 其中,第三方模块安装的位置 ? ...

    用户1173509
  • Python 网络编程

    1、服务器就是一系列硬件或软件,为一个或多个客户端(服务的用户)提供所需的“服务”。它存在唯一目的就是等待客户端的请求,并响应它们(提供服务),然后等待更多请求...

    用户1173509
  • nginx的worker_processes优化

    nginx的worker_processes参数 来源: http://bbs.linuxtone.org/thread-1062-1-1.html 分享一: ...

    用户1173509
  • rsync简介

    Rsync是一个命令行实用程序,它将文件和文件夹从一个位置同步到另一个位置。可以使用rsync实现的一些工作流程是从开发计算机更新生产主机,或使用cron作业调...

    Aurora47
  • AIX环境下文件远程传输复制工具--rsync安装测试

      rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法...

    loong576
  • Fedora 10 下rsync的配置和使用

    rsync是一个提供快速增量文件传输的开源工具。其基于GNU General Public License 发布,目前主要有 Wayne Davison (ht...

    大江小浪
  • Linux学习笔记之rsync配置

      Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件,也可以使用 Rsync 同步本地硬盘...

    Jetpropelledsnake21
  • rsync配置守护进程进行同步

    rsync的配置文件是/etc/rsyncd.conf。注意这个文件默认是不存在的,需要手动创建。

    fanspring
  • 001.Rsync简介及使用

    Rsync是Linux系统中的数据镜像备份工具,通过rsync可以将本地系统数据通过网络备份到任何远程主机上。rysnc不仅仅能对不同位置的文件和目录进行同步,...

    木二
  • Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步

    Rsync 是一个开源的快速备份工具,是Linux和UNIX操作系统默认安装的组件之一,可在不同主机间镜像同步整个目录,并支持增量备份文件传输,保持链接和权限,...

    杰哥的IT之旅

扫码关注云+社区

领取腾讯云代金券