项目中遇到两台机子上文件需要实时同步的情况,尝试了下面两种方法:
项目要求:A机(190)与B机(217)要求一个文件夹内容同对方一致,A机与B机都有可能单独接收到文件从而同步到对方。
方法一、 使用rsync-server与inotify配合同步文件
1、rsync-server配置(217)
2、指定文件位置
3、创建rsync.pas
4、客户端同步脚本(190)
5、设置脚本开机自启动
6、双向同步的实现及存在问题 以上只是实现A机(190)同步到B机(217)的操作,把配置改一下在A机(190)上建立rsync服务器,即可实现双向同步,但不能执行删除操作,因为它们并没有方法判断以谁的操作为主,会造成新建文件被删除。
方法二、使用NFS共享服务器实现文件同步
1、配置NFS
2、加载NFS共享目录 加载之前先用SSH连接一下两台机子,这样就不用配验证了,再写入到/etc/fstab文件里就OK了。
写在最后:方法一文件同时存在两台机子上,具有实时性,安全性,但只适合不执行删除的文件的环境;方法二文件只存在于NFS服务器上,如果配合rsync服务器定时备份到另一地方,出现故障时可以人工恢复,也是不错的选择。
项目要求:A机(190)与B机(217)要求一个文件夹内容同对方一致,A机与B机都有可能单独接收到文件从而同步到对方。
方法一、 使用rsync-server与inotify配合同步文件
1、rsync-server配置(217)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
# vi /etc/xinetd.d/rsync # default: off# allows crc checksumming etc.service rsync{ disable = no socket_type = stream wait = no user = root server = /usr/bin/rsync server_args = --daemon log_on_failure += USERID} |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
# vi /etc/rsyncd.conf uid = rootgid = rootuse chroot = yesmax connections = 4strict modes = yessyslog facility = local5port = 873[backup]path = /home/rsync/test/ ##要同步的文件夹comment = This is a testignore errorsread only = no ##写权限list = yesauth users = rsyncsecrets file = /etc/rsync.pas ##验证文件,对方机子也要存在这个文件hosts allow = 192.168.1.190 ##客户端IP |
|
1
2
|
# vi /etc/rsync.passync:test |
|
1
2
3
4
5
6
7
8
|
#vi inotify_rsync.sh#!/bin/bashSRC=/home/rsync/test/DST=rsync@192.168.1.217::backup/usr/bin/inotifywait -mrq -e modify,<del datetime="2011-11-07T01:44:44+00:00">delete</del>,create,attrib ${SRC} | while read D E Fdo/usr/bin/rsync -ahqzt --progress <del datetime="2011-11-07T01:44:44+00:00">--delete</del> --password-file=/etc/rsync.pas $SRC $DSTdone |
|
1
|
# cat "/root/inotify_rsync.sh &" >> /etc/rc.local |
方法二、使用NFS共享服务器实现文件同步
1、配置NFS
|
1
2
3
4
5
|
#service portmap start#service nfs start#vi /etc/exports /home/rsync/test *(rw,sync,no_root_squash) ##rw:可读写的权限;sync:资料同步写入存储器中; no_root_squash: 登入到NFS主机的用户如果是ROOT用户,他就用有ROOT的权限# exportfs -rv ##重新将设定加载 |
|
1
|
mount -t nfs 192.168.1.190:/home/rsync/test /home/rsync/test |
本文出自 “kras-linux” 博客,请务必保留此出处http://klinux.blog.51cto.com/2972664/708294
