http://blog.csdn.net/cymm_liu/article/details/31347531
目标:把[88]_A主机的/data/home/web同步到[27]_B主机的/data/home/qy目录
B主机作为rsync服务器
#检查系统是否安装了rsync软件包
[[email protected] home]# rpm -qa |greprsync
rsync-2.6.9
如果没有,就去yum 或者apt-get install或者去官网服务器上下一个
1. ◆自定义启动方式,配置如下:
新建或配置rsyncd.conf
[[email protected] etc]# vim rsyncd.conf
uid = www
gid = www
use chroot = no
port = 873
max connections = 10
pid file = /var/run/rsyncd.pid
#log file = /var/log/rsyncd.log
hosts allow = 110.163.200.119
hosts deny = *
## 上面这段是全局配置,下面的模块可以有多个
[web]
path = /data/home/qy/
ignore errors = yes
read only = no
write only = no
list = no
auth users = www
secrets file = /etc/rsync.pass
##以上配置说明:
#port可以不加,因为默认为873端口,可以改为其它端口
#auth users同步验证时用什么账号,这个用户和/etc/password没有关系的。
#secrets file 存放rsync明文密码的文件,为安全起见,此文件权限修改为600,实例:wei:huashuo_rsync,中间不可有空格只用冒号隔开。
#"[qy]"是自定义的模块名,这里相当于一个区分符,如果要同步多个文件夹就在这里区分,英文名叫做module,注意目录权限
配置自动启动vi /etc/rc.d/rc.local
/usr/bin/rsync --daemon --config /etc/rsyncd.conf
◆系统默认启动方式:
添加rsync服务脚本
vi /etc/xinetd.d/rsync
#将disable=yes改为no
service rsync
{
disable = no
socket_type =stream
wait =no
user =root
server =/usr/bin/rsync
server_args =--daemon
log_on_failure +=USERID
}
RHEL默认有安装rsync,编辑/etc/xinetd.d/rsync 后用service xinetd restart 来启动。
A主机当作客户端,配置
2. web.rsync.sh文件脚本:
#!/bin/sh
##定义条件
hosts="110.144.80.16"
src="/data/home/web/"
exclude_files="/usr/mybin/qy.exclude.ini"
module=web
user=www
##把本地src目录同步到rsync服务器模块的路径,ini文件指定过滤不同步的地方,“web”模块就是ysync服务器端定义的名称
/usr/local/inotify/bin/inotifywait -mrq--timefmt ‘%Y-%m-%d %H:%M:%S‘ --format ‘%T %w%f %e‘ \
-e close_write,delete,create,attrib $src| while read files
do
for i in $hosts
do
/usr/bin/rsync -vzrtopg --exclude-from=$exclude_files --delete--progress --password-file=/etc/client.rsync.pass $src [email protected]$i::$module
EXITCODE=$?
if [ $EXITCODE != 0 ]; then
echo "${files} rsync error:"$EXITCODE >>/var/log/inotify.log 2>&1
break
fi
done
done
#/etc/client.rsync.pass文件里只放rsync服务器的密码
创建过滤不同步的文件
vi /usr/mybin/qy.exclude.ini
*.zip
*.gz
*.tar.gz
*.sql
*.tgz
*.rar
log/*
i/tmp/*
blog/
memcached/
system/conf_main.php
启动自动同步脚本
nohup /root/web.rsync.sh >>/dev/null 2>&1 &