centos6.4 inotify+rsync实现文件同步设置
来源:互联网 发布:js select 设置选中项 编辑:程序博客网 时间:2024/06/05 11:03
1.1 简介
1.1.1 rsync
rsync,全称(Remote Rynchronization),是一款开源、快速、多功能的、可实现全量及增量的本地或远程数据镜像同步备份的工具。可实现本地和远程两台主机之间的数据快速复制同步镜像、远程备份等功能。
相关特性:
1、 可排除指定目录或文件同步
2、 可以保持原文件或目录的权限、时间、软硬链接等所有属性不变
3、 可实现增量同步,即只同步发生变化的数据,因此数据传输速率较高
4、 可使用rcp、rsh、ssh等方式配合传输文件
5、 支持匿名或认证的进程模式传输,实现方便安全的数据备份及镜像。
rsync的不足:
首先,rsync同步数据时,需要扫描所有文件后进行比对,进行差量传输。如果文件数量达到了百万甚至千万量级,扫描所有文件将是非常耗时的。而且正在发生变化的往往是其中很少的一部分,这是非常低效的方式。其次,rsync不能实时的去监测、同步数据,虽然它可以通过linux守护进程的方式进行触发同步,但是两次触发动作一定会有时间差,这样就导致了服务端和客户端数据可能出现不一致,无法在应用故障时完全的恢复数据。基于以上原因,rsync+inotify组合出现了!
1.1.2 inotify
Inotify是一种强大的、细粒度的、异步的文件系统事件监控机制,linux内核从2.6.13起,加入了Inotify支持,通过Inotify可以监控文件系统中添加、删除,修改、移动等各种细微事件,利用这个内核接口,第三方软件就可以监控文件系统下文件的各种变化情况,而inotify-tools就是这样的一个第三方软件。
rsync可以实现触发式的文件同步,但是通过crontab守护进程方式进行触发,同步的数据和实际数据会有差异,而inotify可以监控文件系统的各种变化,当文件有任何变动时,就触发rsync同步,这样刚好解决了同步数据的实时性问题。
1.2 rsync+inotify的使用
1.2.1 Server端
1、 安装rsync
通过xinetd管理rsync
yum install rsync xinetd -y
修改/etc/xinetd.d/rsync文件,使其随xinetd启动而启动
vim /etc/xinetd.d/rsync
......将disable = yes 修改为 disable =no
disable = no
2、 建立rsync的配置文件
/etc/rsync.conf
uid=root
gid=root
use chroot=no
max connections=10
timeout = 600
port = 873
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
secrets file=/etc/rsyncd.password
[backup]
path = /home/jyli/test1
ignore errors
read only = no
list = no
hosts allow=*
auth users=jyli
3、建立/etc/ rsyncd.password文件
jyli:iflytek
格式 用户名:密码
# chmod 600 /etc/rsyncd.password
该文件必须有600权限
4、rsync启动
/etc/init.d/xinetdrestart
或
#chkconfig xinetd on
#chkconfig rsync on
1.2.2 client端
1、 安装rsync,同server端
2、 安装inotifytools工具包
# tar zxf inotify-tools-3.14.tar.gz
# cd inotify-tools-3.14
# ./configure && make && make install
3、 建立/etc/rsyncd.password文件
iflytek
这里只填写密码即可,需注意的是,必须是server端对应要同步模块的用户名密码
同样必须是600权限
4、 编写inotify.sh监控脚本
src=/home/spwang/logs/
des=backup
user=jyli
ip=192.168.72.59
/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y/%H:%M' --format '%T%w%f' -e modify,delete,create,attrib $src | while read file
do
rsync -vzrtopg --partial --progress $src $user@$ip::$des --password-file=/etc/rsyscd.password
done
启动
# chmod +x /root/inotify.sh
# /root/inotify.sh & #在后台执行
6、相关问题
(1)、 同步时删除源机器中的文件及目录时,要求不删除备份服务器的文件。
可以实现,通过rsync的配置,在inotify.sh监控脚本配置中,去除—delete参数即可。
--delete参数含义:删除那些DST中SRC没有的文件
(2)、 在同步时网络断开,网络恢复时,能否继续同步?
添加—partial参数,--timeout=15
--partial:断点续传
--timeout:超时
- centos6.4 inotify+rsync实现文件同步设置
- centos6.5 rsync+inotify实现服务器之间文件实时同步
- inotify + rsync实现linux文件实时同步
- inotify + rsync 实现 linux 文件实时同步
- rsync+inotify实现文件实时同步
- inotify+rsync实现文件实时同步
- Rsync+Inotify实现文件同步方案
- Rsync+inotify 实现文件自动同步
- rsync+inotify实现同步
- Linux下rsync设置+inotify设置文件同步
- inotify + rsync 使用触发同步机制 实现文件 "实时同步"
- rsync+inotify文件实时同步
- Rsync+inotify文件实时同步
- rsync+inotify文件实时同步
- rsync+inotify文件同步配置
- rsync+Inotify进行文件同步
- rsync+inotify实现实时同步
- rsync+inotify 实现实时同步
- 两个栈实现一个队列和两个队列实现一个栈【算法导论课后题】
- UIViewController生命周期控制
- poj3237 树链剖分
- commons-beanutils使用
- WordCount运行原理结合代码详细分析
- centos6.4 inotify+rsync实现文件同步设置
- Python语言中的正则表达式学习
- 使用AFNetworking的注意事项
- 文件浏览器 + 优酷菜单 + 下拉菜单 + 自定义开关按钮
- 六角填数---第五届蓝桥杯
- 7天hadoop视频教程
- 第十一篇 ANDROID 系统网络连接和管理机制与架构
- Adaboost算法的前世今生
- commons-digester使用