rsync+inotify文件实时同步

所需软件下载地址:

http://pan.baidu.com/s/1ikubG

http://pan.baidu.com/s/1d0C1L

本实验实现的是单向同步,非双向同步

实验环境:两台虚拟机,我这是两台CentOS5.5

软件部署:

服务端(IP:192.168.1.104):rsync-3.0.9.tar.gz和inotify-tools-3.14.tar.gz

客户端(IP:192.168.1.108):rsync-3.0.9.tar.gz

步骤:

[root@CentOS5smb]#ls

inotify-tools-3.14.tar.gz    rsync-3.0.9.tar.gz

[root@CentOS5smb]#tar zxvf rsync-3.0.9.tar.gz -C /gwq/20130616/

[root@CentOS5smb]#cd /gwq/20130616/rsync-3.0.9

[root@CentOS5rsync-3.0.9]#./configure –prefix=/usr/local/rsync

[root@CentOS5rsync-3.0.9]#make

[root@CentOS5rsync-3.0.9]#make install

[root@CentOS5rsync-3.0.9]#cd /usr/local/rsync/

[root@CentOS5rsync]#echo “rsync-pwd” > /usr/local/rsync/rsync.passwd

///rsync-pwd为密码,可自定义

[root@CentOS5rsync]#chmod 600 rsync.passwd

///为了避免不必要的错误,请把权限改为600

到此服务端上的rsync已经安装好了,但还没进行配置,我们先来安装inotify,稍后再来进行配置rsync

[root@CentOS5smb]#ls

inotify-tools-3.14.tar.gz    rsync-3.0.9.tar.gz

[root@CentOS5smb]#tar zxvf inotify-tools-3.14.tar.gz -C /gwq/20130616/

[root@CentOS5smb]#cd /gwq/20130616/inotify/

[root@CentOS5inotify-tools-3.14]#./configure –prefix=/usr/local/inotify

[root@CentOS5inotify-tools-3.14]#make

[root@CentOS5inotify-tools-3.14]#make install

现在进行配置rsync

新建rsync.sh文件,我这里在/tmp下新建rsync.sh

[root@CentOS5tmp]#vi rsync.sh

#/bin/bash

host=192.168.1.108    ///客户端IP地址

src=/tmp    ////服务端要实时监控的目录

des=web    ///认证的模块名,需要与客户端一致

user=webuser    ///建立密码文件里的认证用户

/usr/local/inotify/bin/inotifywait-mrq–timefmt’%d/%m/%y%H:%M’–format’%T%w%f%e’-emodify,delete,create,attrib$src/

|whilereadfiles

do

/usr/bin/rsync-vzrtopg–delete–progress–password-file=/usr/local/rsync/rsync.passwd$src$user@$host::$des

echo “${files}wasrsynced” >> /tmp/rsync.log2 > &1

done

[root@CentOS5tmp]#chmod 764 rsync.sh

[root@CentOS5tmp]#sh rsync.sh&    ///后台运行该脚本

[root@CentOS5tmp]#echo “/tmp/rsync.sh” >> /etc/rc.local/rsync.sh    ///脚本加入到开机启动项里

[root@CentOS5tmp]#touch /etc/rsyncd.conf    ///etc下新建一个rsyncd.conf空文件

到此服务端已经配置完毕,下面我们来配置客户端

客户端配置,下载安装rsync

[root@CentOS5gwq]#ls

rsync-3.0.9.tar.gz

[root@CentOS5gwq]#tar zxvf rsync-3.0.9.tar.gz

[root@CentOS5gwq]#ls

rsync-3.0.9    rsync-3.0.9.tar.gz

[root@CentOS5gwq]#cd rsync-3.0.9

[root@CentOS5rsync-3.0.9]#./configure –prefix=/usr/local/rsync

[root@CentOS5rsync-3.0.9]#make

[root@CentOS5rsync-3.0.9]#make install

[root@CentOS5rsync-3.0.9]#echo “webuser:rsync-pwd” > /usr/local/rsync/rsync.passwd

///服务端建立的密码文件里只有密码,没有用户名;而在客户端里建立的密码文件,用户名与密码都有

[root@CentOS5rsync-3.0.9]#cd /usr/local/rsync

[root@CentOS5rsync]#chmod 600 rsync.passwd

新建rsync配置文件

[root@CentOS5rsync]#pwd

/usr/local/rsync

[root@CentOS5rsync]#vi rsync.conf

uid=root

gid=root

usechroot=no

maxconnections=10

strictmodes=yes

pidfile=/var/run/rsyncd.pid

lockfile=/var/run/rsync.lock

logfile=/var/log/rsyncd.log

[web]///服务端rsync.sh认证模块名称

path=/tmp/

comment=webfile

ignoreerrors

readonly=no

writeonly=no

hostsallow=192.168.1.104

hostsdeny=*

list=false

uid=root

gid=root

authusers=webuser

secretsfile=/usr/local/rsync/rsync.passwd

[root@CentOS5rsync]#/usr/local/rsync/bin/rsync –daemon

///启动服务端和客户端的rsync服务

在服务端tmp目录下新建文件和目录,客户端自动同步

手动同步命令格式:

[root@CentOS5rsync]#/usr/bin/rsync-vzrtopg–delete–progress –password-file=/usr/local/rsy

nc/rsync.passwd/tmp/webuser@192.168.1.108::web

自动同步命令格式:

sh rsync.sh&

可以制定任务计划,让rsync各一段时间同步一次,格式为:

*/1****/usr/bin/rsync -Rav –delete–password-file=/usr/local/rsync/rsync.passwdwebuser@192.168.2.173::web/tmp

这样就会每分钟同步一次,我做这个格式的任务计划得到的效果是同步客户端指定的文件和目录,而不是服务端的,就等于说你在服务端新建一个文件,一分钟后会自动消失,因为客户端里面没有此文件,而在客户端里面新建一个文件,则一分钟后会同步至服务端(cron计划需要在服务端上操作执行,客户端上操作是没反应的)

而使用sh rsync.sh&则同步服务端的

原创文章,作者:3628473679,如若转载,请注明出处:https://blog.ytso.com/187254.html

(0)
上一篇 2021年11月5日
下一篇 2021年11月5日

相关推荐

发表回复

登录后才能评论