标签:rsync
安装环境:
server:192.168.2.183
client:192.168.2.222
两台服务器上分别安装:
yum install rsync -y
sever端配置rsync文件vi /etc/rsyncd.conf 默认配置文件不存在自己创建,以下为配置
uid = nobody gid = nobody port = 873 host all = 192.168.2.222 use chroot = on max connections = 4 timeout = yes [web] path = /var/www/html/ comment = rsync files ignore errors read only = no list = yes auth users = rsync secrets file = /etc/rsync_server.passwd ~
创建密码通信文件vi /etc/rsync_server.passwd 并给与600权限
[root@localhost ~]# cat /etc/rsync_server.passwd rsync:rsync chmod 600 /etc/rsync_server.passwd
启动rsync
rsync --daemon
查看监听端口
[root@localhost ~]# netstat -ntulp | grep rsync tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 20404/rsync tcp 0 0 :::873 :::* LISTEN 20404/rsync
rsync配置完毕
client端配置
实现实时同步需要安装inotify文件检查工具
下载安装
wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz ./configure --prefix=/usr/local/inotify make && make install
编写脚本inotify.sh然后后端执行,脚本内容如下:
#!/bin/bash host=192.168.2.183 src=/var/www/html/ dst=web user=rsync inotifywait=/usr/local/inotify/bin/inotifywait rsync=/usr/bin/rsync $inotifywait -mrq --timefmt ‘%d/%m/%y %H:%M‘ --format ‘%T %w%f‘ -e modify,delete,create,attrib $src | while read files do $rsync -vzrtopg --delete ./ --timeout=100 --progress --password-file=/etc/rsync_client.passwd $user@$host::$dst $src echo "${files} was rsynced" >>/tmp/rsync.log 2>&1 done~
客户端创建rsync同步密码文件rsync_client.passwd 并给与600权限
[root@node2 ~]# cat /etc/rsync_client.passwd rsync chmod 600 /etc/rsync_client.passwd rsync
然后
后台运行inotify.sh脚本
nohup sh inotify.sh & [root@node2 ~]# jobs [1]+ Running nohup sh inotify.sh & fg是调用后台运行的程序的,
然后测试:
在server端cp文件到/var/www/html/目录下,然后在客户端client的/var/www/html/目录下查看,文件同步过来了,在server执行for a in `seq 200`;do touch $a;done创建文件,可以在客户端查看
以上实验是服务端同步到客户端,那怎么将客户端的文件推送到服务端了,其实只需要改一下脚本里面的同步命令就可以了
本文出自 “毛毛鸭” 博客,请务必保留此出处http://woshitieren.blog.51cto.com/2466034/1690555
标签:rsync
原文地址:http://woshitieren.blog.51cto.com/2466034/1690555