码迷,mamicode.com
首页 > 其他好文 > 详细

Rsync + inotify 实现文件实时同步

时间:2018-10-11 21:43:22      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:配置文件   账户   下载   local   orm   6.2   gre   tool   服务器端   

Rsync用来实现触发式的文件同步。
inotify-tools是一套组件,Linux内核从2.6.13版本开始提供了inotify通知接口,用来监控文件系统的各种变化情况,如文件存取、删除、移动等。利用这一机制,可以非常方便地实现文件异动告警、增量备份,并针对目录或文件的变化及时作出响应;
所以使用inotify监控文件系统有任何变动时,然后就触发rsync同步,达到了单向实时同步数据的功能。

Rsync

默认安装  yum install rsync -y  或者 源码下载 安装;
示例启动  /usr/bin/rsync --daemon
可以添加到 /etc/rc.load 启动项中;

示例:

A: web-server    192.168.2.5
B:web - bak      192.168.2.6

一、web-bak 配置:

在bak 服务上 安装 Rsync 

默认端口是873,默认安装时候没有这个文件 需要手动创建配置文件 rsyncd.conf

对于非匿名访问的 rsync 服务器还要创建认证口令文;

1、创建配置文件:

# vi /etc/rsyncd.conf

[root@localhost ~]# cat /etc/rsyncd.conf 
uid = root
gid = root
use chroot = no 
max connections = 100
timeout = 30 
strict modes = yes 
pid file = /var/run/rsyncd.pid 
lock file = /var/run/rsync.lock 
log file = /var/log/rsyncd.log 

[server1] 
path = /backup/
comment = backup file 
ignore errors 
read only = no 
write only = no 
hosts allow = 192.16.2.5            
# hosts deny = * 
list = false 
uid = root 
gid = root 
auth users = bakup
secrets file = /etc/rsync.pass

2、创建 rsync.pass 文件

[root@localhost ~]# cat /etc/rsync.pass 
bakup:server1

web-server 配置:

1、创建  rsync.pass 文件

[root@localhost ~]# cat /etc/rsync.pass 
server1

2、安装 inotify-tools 

默认yum install   也可以源码进行。

3、创建 检测同步脚本

[root@localhost hdb1]# cat rsync-inotify.sh 
#!/bin/bash
bak=192.168.2.6
# 备份服务器
src=/bakup/
# 备份目录 dst=server1 # 备份模块
user=bakup 启动账户 /usr/bin/inotifywait -mrq --timefmt ‘%d/%m/%y %H:%M‘ --format ‘%T %w%f%e‘ -e close_write,modify,delete,create,attrib $src | while read files do /usr/bin/rsync -vzrtopg --delete --progress --password-file=/etc/rsync.pass $src $user@$bak::$dst echo "${files} was rsynced ok ! " >>/tmp/rsync.log 2>&1

三、后台启动运行同步脚本

# nohup sh rsync-inotify.sh &

四、 Rsync 是单向同步的;客户端只保持与服务器端的镜像同步;客户端删除并不会影响服务端数据。 

unison 可以达到双向镜像同步。

 

Rsync + inotify 实现文件实时同步

标签:配置文件   账户   下载   local   orm   6.2   gre   tool   服务器端   

原文地址:https://www.cnblogs.com/sharesdk/p/9774760.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!