rsync+intofy实现数据的实时备份

一、环境
1、主机信息:
server node0  192.168.32.30  /var/www/html
client node1  192.168.32.31  /var/www/html
2、实验要求:
client node1 web目录下文件或目录发生任何修改、新建、删除等操作,都实时同步备份到server node0上
二、rsync服务器端配置(node0)
1、主配置文件(/etc/rsyncd.conf)
[root@node0 ~]# vim /etc/rsyncd.conf 
gid = nobody
use chroot = no
max connections = 10             # 最大连接数为4
strict modes = yes
pid file = /var/run/rsyncd.pid   #日志文件
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
[webdata]                    #认证模块,在client端需要指定
path = /var/www/html         #需要备份或接受备份的目录
comment = web server file    
ignore errors                 #忽然一些无关的IO错误
read only = no
write only = no
hosts allow = *
hosts deny = 192.168.32.33
list = false               
uid = root 
gid = root
auth users = backup                #认证用户,不是系统用户,如没有则匿名 
secrets file = /etc/rsync_srv.pass #认证密码文件,权限必须为600
2、认证密码文件(文件名rsyncd.conf中定义)
[root@node0 ~]# vim /etc/rsync_srv.pass 
backup:backupweb    
#一行一个用户,可多行多用户               
3、将rsync以守护进程形式启动
[root@node0 ~]# vim /etc/xinetd.d/rsync 
service rsync
{
disable = no              #no启动,yes禁止
socket_type     = stream
wait            = no
user            = root
server          = /usr/bin/rsync
server_args     = --daemon
log_on_failure  += USERID
}
#如不用xinetd进程启动rsync服务可直接运行命令:rsync --daemon   
[root@node0 ~]# service xinetd restart    #启动rsync服务
三、rsync客户端node1上配置
1、认证密码文件
[root@node1 ~]# vim /etc/rsync_srv.pass 
backupweb
#密码文件名随意,权限600,密码通server node0上定义
2、同步node1到node0上测试
[root@node1 ~]# rsync -vzrtopg --delete --progress --password-file=/etc/rsync_srv.pass /var/www/html/ backup@192.168.32.30::webdata
building file list ... 
10 files to consider
./
index5
0 100%    0.00kB/s    0:00:00 (xfer#1, to-check=3/10)
index6
0 100%    0.00kB/s    0:00:00 (xfer#2, to-check=2/10)
index7
0 100%    0.00kB/s    0:00:00 (xfer#3, to-check=1/10)
index8
0 100%    0.00kB/s    0:00:00 (xfer#4, to-check=0/10)
sent 334 bytes  received 110 bytes  888.00 bytes/sec
total size is 30  speedup is 0.07
#同步node1上数据到node0上,如果想同步node0上数据到node1上将源或目标调换一下位置即可:
3、同步node0到node1上测试
[root@node1 ~]# rm -rf /var/www/html/*
[root@node1 ~]# rsync -vzrtopg --delete --progress --password-file=/etc/rsync_srv.pass backup@192.168.32.30::webdata /var/www/html/
receiving file list ... 
5 files to consider
./                  
index5
0 100%    0.00kB/s    0:00:00 (xfer#6, to-check=3/10)
index6
0 100%    0.00kB/s    0:00:00 (xfer#7, to-check=2/10)
index7
0 100%    0.00kB/s    0:00:00 (xfer#8, to-check=1/10)
index8
0 100%    0.00kB/s    0:00:00 (xfer#9, to-check=0/10)
sent 308 bytes  received 623 bytes  1862.00 bytes/sec
total size is 30  speedup is 0.03
[root@node1 ~]# ls /var/www/html
index5  index6  index7  index8  index.html
四、安装inotify工具inotify-tool(node1上)
1、确认系统内核支持inotify
[root@node1 ~]# ll /proc/sys/fs/inotify/
总计 0
-rw-r--r-- 1 root root 0 02-07 16:14 max_queued_events  #分配到每个实例中排队的event数量
-rw-r--r-- 1 root root 0 02-07 16:14 max_user_instances #每个real user可创建的inotify实例最大数量
-rw-r--r-- 1 root root 0 02-07 16:14 max_user_watches   #每个inotify实例支持的最大目录数量
#inotify只对其所在系统平台进行监控,所用要将node1的数据实时传送到node0上,就必须安装在node1上
[root@node1 ~]#echo 30000000 > /proc/sys/fs/inotify/max_user_watches  #增加实例支持的最大目录数量
2、安装inotify-tools工具
[root@node1 ~]# tar -zxvf inotify-tools-3.14.tar.gz 
[root@node1 ~]# cd inotify-tools-3.14
[root@node1 inotify-tools-3.14]# 
[root@node1 inotify-tools-3.14]# ./configure 
[root@node1 inotify-tools-3.14]# make&&make install
[root@node1 inotify-tools-3.14]# ll /usr/
[root@node1 inotify-tools-3.14]# ls -ls /usr/local/bin/inotify*
40 -rwxr-xr-x 1 root root 37260 02-07 11:20 /usr/local/bin/inotifywait
36 -rwxr-xr-x 1 root root 35434 02-07 11:20 /usr/local/bin/inotifywatch
五、利用inotifywait监控等待事件,配合shell脚本实现rsync的实时同步
1、编辑实时同步脚本
[root@node1 ~]# vim /etc/init.d/rsy_inotify.sh 
#!/bin/bash
host=192.168.32.30
src=/var/www/html/
des=webdata
user=backup
case $1 in
start)
inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attri
b $src \
| while read files  
do
rsync -vzrtopg --delete --progress --password-file=/etc/rsync_srv.pass $src $user@$host::$des >
> /tmp/rsyncd.log 2>&1
echo "${files} was rsynced" >>/tmp/rsync.log 2>&1
done &
;;
stop)
kill -9 `ps -ef | grep inotifywait |awk '{print $2}' |sed -n '1p'`
echo "the inotifywait service have been stoped" >>/tmp/rsync.log
;;
esac
2、启动测试
[root@node1 ~]# /etc/init.d/rsy_inotify.sh start
[root@node0 ~]# ls /var/www/html/    #查看node0上内容
index1.html  index2.html  index3.html  index4.html  index5  index6  index7  index8  index.html
[root@node1 ~]# ls /var/www/html/    #查看node1上内容
index1.html  index2.html  index3.html  index4.html  index5  index6  index7  index8  index.html
[root@node1 ~]# rm -rf /var/www/html/*
[root@node0 ~]# ls /var/www/html/    #结果:node0上同步删除了
07/02/12 16:27 /var/www/html/index1.htmlDELETE was rsynced
07/02/12 16:27 /var/www/html/index2.htmlDELETE was rsynced
07/02/12 16:27 /var/www/html/index3.htmlDELETE was rsynced
07/02/12 16:27 /var/www/html/index4.htmlDELETE was rsynced
07/02/12 16:27 /var/www/html/index5DELETE was rsynced
07/02/12 16:27 /var/www/html/index6DELETE was rsynced
07/02/12 16:27 /var/www/html/index7DELETE was rsynced
07/02/12 16:27 /var/www/html/index8DELETE was rsynced
07/02/12 16:27 /var/www/html/index.htmlDELETE was rsynced
#日志显示文件删除备inotifywait监控到,并同步了。
本文转自netsword 51CTO博客,原文链接:http://blog.51cto.com/netsword/774225

rsync+inotify实现数据的实时备份相关推荐

  1. 通过rsync+inotify实现数据的实时备份

    在前面的博文中,我讲到过利用rsync实现数据的镜像和备份,但是要实现数据的实时备份,单独靠rsync还不能实现,本文就讲述下如何实现数据的实时备份. 一.rsync的优点与不足 与传统的cp.tar ...

  2. 服务器数据的实时备份与定时备份(rsync+inotify)

    文章目录 安装调试inotify(主服务器) 调试rsync 编写实时同步脚本(主服务器) 编写定时备份脚本(备份端) 需求:对服务器数据进行实时备份,不能丢失任何已生成数据 思路:需要新增一台备份服 ...

  3. rsync+inotify 实现数据实时同步

    Rsync (Rmote sync)是一款非常好的数据同步工具,能够通过对比同步双方的数据变动,实现增量同步,还可以通过LAN/WAN实现远程多台主机间文件的同步,还能结合crond任务计划来执行自动 ...

  4. rsync+sersync实现数据文件实时同步

    rsync+sersync实现数据文件实时同步 使用rsync+sersync,实现nfs与backup服务器间实时数据同步 一.数据同步工具介绍 rsync是一款开源的.快速的.多功能的.可实现全量 ...

  5. rsync+inotify实现文件增量实时同步

    rsync+inotify实现文件增量实时同步 项目环境 防火墙{项目环境,不是必要条件} 项目需求 一.rsync安装部署 1.检查是否安装rsync 2.测试系统rsync命令 3.新建配置文件 ...

  6. 利用unison+inotify 实现数据双向实时同步

    利用unison+inotify 实现数据双向实时同步 环境:Centos 6.5 64位 server1 :192.168.1.201 server2 :192.168.1.250 需求软件:oca ...

  7. 利用ssh+rsync+inotify实现数据的异地实时同步

    在服务器中,通常结合计划任务.shell脚本来执行本地备份.为了进一步提高备份的可靠性,使用异地备份也是非常重要的,利用rsync工具,可以实现快速.高效的异地备份.本篇博客将配置rsync+cron ...

  8. rsync + inotify 同步数据

    rsync 1.安装rsync包 yum install rsync 2.两种工作模式 2.1.本地 rsync -r /var/www/image/ /var/www/test/ 2.2.远程 rs ...

  9. linux下通过rsync+inotify 实现数据实时备份(远程容灾备份系统)

    本文出处参考:http://www.jbxue.com/article/10493.html 一.安装步骤(服务器端192.168.0.5) 1) 安装rsync 点击下载rsync-3.0.9.ta ...

最新文章

  1. 5弹出阴影遮罩_千文详述Cocos Creator弹出式对话框实现技术,着实硬核
  2. spring12:@Component衍生注解
  3. Windows保护模式学习笔记(十二)—— 控制寄存器
  4. 六十四、Vue项目去哪儿网App开发准备
  5. java批量修改txt文件_Java小工具 根据文本批量修改文件名
  6. 一位大牛的JAVA学习资料
  7. POJ3889-Fractal Streets【分形,递归,分治】
  8. python爬取网易云音乐视频_用Python爬取网易云音乐歌曲
  9. OA系统高性能解决方案(史上最全的通达OA系统优化方案)
  10. 春运在即 360又抢了12306的风头
  11. oracle官文查看参数介绍的路径
  12. word如何翻译成中文?Word翻译成中文的方法分享
  13. 苹果修复用户位置有关的安全漏洞,苹果Find My帮你防丢
  14. 肠道菌群与睡眠的双向桥接
  15. 移动电子商务网站可用性-商品页面和购物车
  16. 问题 C: 考试排名(一)(结构体专题)
  17. 可以买到 Linux 电脑的 10 个地方
  18. Anaconda3 导入外部环境报错
  19. PEP8规范的中文版
  20. 【MOOC浙大翁恺】C语言学习笔记

热门文章

  1. Laravel教程 一:安装及环境配置
  2. vs编译protobuf 3.0.0
  3. SQL--添加角色权限
  4. git 的安装和项目建立
  5. redis配置文件redis.conf参数说明
  6. jQuery插件:超酷的多列网格式拖放插件gridster.js
  7. linux常用命令1
  8. 古典加密算法-----置换密码
  9. 高仿书旗小说 Flutter版,支持iOS、Android
  10. pandas DataFrame(2)-行列索引及值的获取