rsync+inotify实现文件服务器实时双向同步
来源:互联网 发布:php租房管理源码 编辑:程序博客网 时间:2024/05/22 05:34
假设有两台文件服务器
A:192.168.1.100
B:192.168.1.101
要实现文件的实时双向同步可以采用rsync+inotify组合,rsync可以实现文件同步,但是它没有办法实时触发,
所以就需要搭配inotifi实时触发。
第一步:在两台服务器上面都安装rsync和inotify
Fedora、Redhat 、centos等在线安装方法;
# yum install rsync
一部搞定rsync的安装
inotify的安装方法如下:
1.下载inotify的源码,例如下载的文件名为inotify.tar.gz
2.解压inotify
#tar -zxvf inotify.tar.gz
进入到解压的文件夹里面
#cd inotify
编译并安装
#./configure --prefix=/usr/local/inotify
#make && make install
inotify的安装目录是/usr/local/inotify
第二步配置每个服务器的rsync和inotify
在/etc目录下面新建文件rsyncd.conf,内容如下
pid file = /var/run/rsyncd.pid
port = 873
address = 192.168.1.100
uid = root
gid = root
use chroot = yes
read only = no
hosts allow=192.168.1.101
hosts deny=*
max connections = 5
motd file = /etc/rsyncd.motd
lock file=/var/run/rsyncd.lock
log file=/var/log/rsyncd.log
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
[www]
path = /backup
list=no
ignore errors
comment = data backup
auth users = root
secrets file = /etc/rsyncd.secrets
配置说明:
配置文件里面不能包含#注释
address表示本机ip
hosts allow 表示允许访问的ip,我这里配置的是服务器B
secrets file 表示验证文件
[www]里面的www是模块名称,可以自己定义
path是要同步的路径
创建验证文件
在/etc下面创建 名称为rsyncd.secrets的验证文件
格式为 用户名:密码,例如 testuser:pwdtest
此用户名和密码和系统没有关系,是给rsync设置的用户名和密码
设置完了之后需要给rsyncd.secrets设置权限,如下
#chmod 600 /etc/rsyncd.secrets
接下来就是配置inotify,实时出发文件同步,在inotify的安装目录下面新建脚步文件inotify_back.sh,内容如下
#!/bin/bash
src=/backup/
/usr/local/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,delete,create,attrib $src | while read file
do
/usr/bin/rsync -auvrtzopgP --progress --password-file=/etc/rsyncd.pwd /backup/testuser@192.168.1.101::www
echo " ${file} was rsynced" >>/usr/log/rsync.log 2>&1
done
配置说明
/etc/rsyncd.pwd 是B服务器里面rsync配置的密码
testuser@192.168.1.101::www 里面的testuser是rsync配置的用户名,后面的ip是B服务器的ip,www是配置要同步的模块名称
配置文件创建完成之后还需要授权
#chmod +xinotify_back.sh
两天服务器的配置方法相同,只需要修改对应的参数即可
最后启动rsync和inotify
#rsync --daemon --config=/etc/rsyncd.conf
然后进入到inotify_back.sh所在的目录启动inotify
#./inotify_back.sh
这样启动的inotify, 无法在关闭shell命令行之后在后台运行。如果需要在后台运行
可以使用#nohup ./inotify_back.sh &
通过以上方式配置并启动两台服务器之后,就可以完美的实现文件的实时双向同步了
谢谢各位!
- rsync+inotify实现文件服务器实时双向同步
- rsync+inotify实现实时同步
- rsync+inotify 实现实时同步
- rsync+inotify实现实时同步
- rsync+inotify实现实时同步
- rsync+inotify实现实时同步
- inotify+rsync实现实时同步
- 真正的inotify+rsync实时双向同步
- rsync inotify 实时同步
- rsync+inotify实时同步
- rsync+ inotify实时同步
- Rsync+Inotify实时同步
- rsync+inotify实时同步
- rsync+inotify实时同步
- Rsync+inotify 实时同步
- inotify + rsync实现linux文件实时同步
- inotify + rsync 实现 linux 文件实时同步
- rsync+inotify实现文件实时同步
- 摇钱树 dp+贪心
- 关于Android中View的分发机制的学习总结(View篇)
- logitech webcam linux 驱动安装(适用于TX1和PC)
- 获取json中的key值
- Java中的内部类
- rsync+inotify实现文件服务器实时双向同步
- Linq to DataSet的Distinct用法
- [BoolanC++微专业] Week5笔记
- 1097. Deduplication on a Linked List
- PAT 乙级 1022. D进制的A+B (20) Java版
- 事务(一)
- java并发编程(十九)----(JUC集合)总体框架介绍
- eclipse安装和使用GitHub
- 关于时间倒计时 暂停 然后继续开始(延伸 li轮流显示 hover移入暂停 mouseover移出继续开始)