rsync+inotify实现实时同步

前言

我们都知道一旦 Linux 系统被入侵了,或者 Linux 系统由于硬件关系而死机,会丢失重要的数据,而最好的解决方法就是做好备份,但是每次都靠我们自己手动备份太过麻烦,这时rsync+inotify刚好可以解决这个问题
本篇文章将对 Linux 主机之间文件实时自动同步备份进行讲解,使用 rsync+inotify 组合的方式来实现,避免由于硬件或者软件导致的 Linux 系统死机或损坏造成的损失

一、rsync+inotify 简介

1、rsync简介
rsync(remote synchronize)是 Liunx/Unix 下的一个远程数据同步工具,它可通过 LAN/WAN 快速同步多台主机间的文件和目录。

Linux 之间同步文件一般有两种方式,分别是 rsync 与 scp 。scp 相当于复制,粘贴,文件不存在则新建,若存在则覆盖,而 rsync 则是比较两边文件是否相同,不相同才进行更新。所以 rsync 和 scp 在文件夹存在的情况下差异很大,因为 scp 是复制和覆盖,从执行性能来说 rsync 更胜一筹。而且 rsync 能将文件夹、文件的权限等信息也保存下来。

但是 rsync 也有一定的缺点,在同步数据时,需要扫描所有文件后进行比对,如果文件数量相当大时,扫描文件就非常耗费时间和性能。其次,rsync 不能够实时监测、同步数据,这就可能导致一些时间段数据不一致。解决这个问题的方法就是实时同步,所以需要使用 rsync+inotify 组合。

2、inotify简介
inotify 是一种强大的、细粒度的、异步的文件系统事件监控机制,Linux 内核从2.6.13版本起,加入了对 inotify 的支持。通过 inotify 可以监控文件系统中添加、删除、修改、移动等各种事件,利用这个内核接口,inotify-tools 便可以监控文件系统下文件的各种变化情况了。

二、环境搭建

主机服务器系统ip地址软件
node1原服务器CentOS7 64位192.168.100.11rsync,inotify
node1同步服务器CentOS7 64位192.168.100.12rsync

在这里插入图片描述

三、实操环节

1.原服务器同步服务器做免登陆

在我的上一篇博客

2.实验步骤
上传数据包
链接: https://pan.baidu.com/s/1Qn9Dyrqf19vkwTlJcxge3w 提取码: wvqb
1.源码包安装

[root@7-11 ~]# tar xf inotify-tools-3.13.tar.gz 
[root@7-11 ~]# cd inotify-tools-3.13/
[root@7-11 inotify-tools-3.13]# ./configure --prefix=/usr/local/inotify && make && make intall

2.修改配置文件如下

[root@7-11 ~]# vi /etc/sysctl.conf
fs.inotify.max_queued_events = 16384           监控队列大小
fs.inotify.max_user_instances = 1024           最多监控实例数
fs.inotify.max_user_watches = 1048576           每个实例最多监控文件数			 

3、在100.11上新建源地址

[root@7-11 ~]# sysctl -p
[root@7-11 ~]# mkdir /opt/dgf
[root@7-11 ~]# chown -R nobody:nobody /opt/dgf

4、在100.11上新建一个脚本如下

[root@7-11 ~]# vi dgf.sh
#!/bin/bash
INOTIFY_CMD="/usr/local/inotify/bin/inotifywait -mrq -e modify,create,attrib,move,delete /opt/dgf"
RSYNC_CMD="/usr/bin/rsync -avz --delete /opt/dgf root@192.168.100.12:/opt"
$INOTIFY_CMD | while read files
do
   $RSYNC_CMD
done

5、把脚本放到后台运行,主要是完成实时监控
[root@7-11 ~]# bash dgf.sh &
6、查看是否同步

[root@7-11 ~]# cd /opt/dsk/
[root@7-11 dsk]# ls
1.txt  2.txt  docker.txt  dsk-lvs-keep.doc

在这里插入图片描述

查看100.12是否同步

[root@7-12 dsk]# ls
1.txt  2.txt  docker.txt  dsk-lvs-keep.doc
[root@7-12 dsk]# 

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值