rsync+inotify文件实时同步-创新互联
所需软件下载地址:
创新互联是一家专注于成都网站制作、做网站与策划设计,宾川网站建设哪家好?创新互联做网站,专注于网站建设10年,网设计领域的专业建站公司;建站业务涵盖:宾川等地区。宾川做网站价格咨询:028-86922220http://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&则同步服务端的
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
当前文章:rsync+inotify文件实时同步-创新互联
URL地址:http://cdiso.cn/article/jgipd.html