当前位置: 首页 > Linux学院 > 系统管理 > 数据备份 > 实战案例通过rsync+inotify实现数据的实时备份

实战案例通过rsync+inotify实现数据的实时备份

2013-09-16 17:38 来源:风信网 作者:末信 人气指数: 我要评论

本文以实战案例通过rsync+inotify实现数据的实时备份系统来进行详细的说明,分别分析rsync的优点与不足,认识inotify强大的、细粒度的、异步的文件系统事件监控机制,安装inotify工具书及inotify-tools的使用,inotify相关参数的设置说明,inotifywait相关参数的设置说明,最后通过实际的企业应用案例来完成rsync+inotify搭建实时同步系统。

rsync的优点与不足

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

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

初识inotify

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

    在上一节中讲到,rsync可以实现触发式的文件同步,但是通过crontab守护进程方式进行触发,同步的数据和实际数据会有差异,而inotify可以监控文件系统的各种变化,当文件有任何变动时,会触发rsync同步,这样刚好解决了同步数据的实时性问题。

安装inotify工具inotify-tools

    由于inotify的特性需要Linux内核的支持,在安装inotify-tools前要先确认Linux系统内核是否是2.6.13版本以上,如果Linux内核低于2.6.13版本,就需要重新编译内核加入对inotify的支持。可以用如下方法判断内核是否支持inotify:

[root@localhost software]# uname -r
2.6.32-358.11.1.el6.i686
[root@localhost software]# ll /proc/sys/fs/inotify
总用量 0
-rw-r--r-- 1 root root 0 8月  31 14:54 max_queued_events
-rw-r--r-- 1 root root 0 8月  31 14:54 max_user_instances
-rw-r--r-- 1 root root 0 8月  31 14:54 max_user_watches

    如果有上面3项输出,就表示系统默认支持inotify,可以开始安装inotify-tools了。

    可以到http://sourceforge.net/projects/inotify-tools/下载相应版本的inotify-tools,然后开始编译安装。过程如下:

[root@localhost software]# wget http://nchc.dl.sourceforge.net/project/inotify-tools/inotify-tools/3.13/inotify-tools-3.13.tar.gz
--2013-08-31 15:00:56--  http://nchc.dl.sourceforge.net/project/inotify-tools/inotify-tools/3.13/inotify-tools-3.13.tar.gz
正在解析主机 nchc.dl.sourceforge.net... 211.79.60.17
正在连接 nchc.dl.sourceforge.net|211.79.60.17|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:389473 (380K) [application/x-gzip]
正在保存至: “inotify-tools-3.13.tar.gz”

100%[===================================>] 389,473     43.4K/s   in 9.7s   

2013-08-31 15:01:06 (39.4 KB/s) - 已保存 “inotify-tools-3.13.tar.gz” [389473/389473])

[root@localhost software]# tar zxvf inotify-tools-3.13.tar.gz
[root@localhost software]# cd inotify-tools-3.13
[root@localhost inotify-tools-3.13]# ./configure
[root@localhost inotify-tools-3.13]# make
[root@localhost inotify-tools-3.13]# make install
[root@localhost inotify-tools-3.13]# ll /usr/local/bin/inotifywa*
-rwxr-xr-x. 1 root root 31994 8月  31 15:03 /usr/local/bin/inotifywait
-rwxr-xr-x. 1 root root 33971 8月  31 15:03 /usr/local/bin/inotifywatch

    安装完inotify-tools后,会生成inotifywait和inotifywatch两个指令。其中,inotifywait用于等待文件或文件集上的一个特定事件,可以监控任何文件和目录设置,并且可以递归地监控整个目录树:inotifywatch用于收集被监控的文件系统统计数据,包括每个inotify事件发生多少次等信息。

为您推荐: 数据 inotify 实时备份 rsync
大家感兴趣的内容
小伙伴最爱的新闻
小伙伴还关注了以下信息
小伙伴关注的焦点

小伙伴都在关注的热门词

新服 缤纷活动 航海世纪 芈月传 暗黑道具 萌乐网 苹果发布会 最新谍照 三国令 剑雨江湖 怎样修炼战骑 页游 怎样修炼伙伴 木甲世界 仙侠道2 推黑科技 页游模式 武圣试炼场 街机玩法 蓝月传奇 个人BOSS玩法 哥们网 九阴绝学 仗剑出鞘 全新模式 范伟打天下 全新元神玩法 七大神兵简介 新手攻略 跑腿任务 门派五行 城战礼包 页游界 泥石流 傅园慧 经典网页游戏 耐玩 盘点 玉石攻略 提升角色 大黑 实装属性 神兵攻略 问鼎莽荒 莽荒纪 手持神兵 土豪梦 万世 开学清单 财富赚不停 天书世界 大黑游戏 资源战场 ppwan 天问 激战 全国大战 雄霸一方 新增宠物技能 绝对小能手 花千骨 三尾章鱼 风色轨迹 双枪手 弑之神 缤纷好礼 惊喜六重连 帮会 中秋福利 自制月饼 九阴真经 玩家 五周年纪念 纪念银币 名动三界 新服资料片 画江山 勇战妖魔 邪恶势力 上古降魔 老司机玩法 坐骑揭秘 黑科技 竞技场攻略 铁血皇城 披风玩法 书剑恩仇录 装备强化攻略 野外BOSS玩法 全网曝光 赤壁传说 半回合制国 ACT 奇珍商城 热血战歌 传奇宝藏抽奖 打开方式 门徒 门徒获取玩法 三大萌宠简介