rsync+inotify实现实时单向同步

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 06:24 点击:

源服务器          10.13.114.16
目标服务器        10.13.114.17
目的:实现源服务器10.13.114.16 /home/admin/www/文件夹文件实时同步到目标服务器10.13.114.17 的/home/admin/www目录下

第一步:源服务器端安装rsync
wget http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo -O /etc/yum.repos.d/CentOS-Base.repo
yum -y install vim-enhanced

wget http://www.samba.org/ftp/rsync/rsync-3.0.8.tar.gz
tar -zxvf rsync-3.0.8.tar.gz
cd rsync-3.0.8
./configure --prefix=/usr/local/rsync --disable-ipv6
make && make install

cd /usr/local/rsync/
mkdir etc
mkdir var
vim /usr/local/rsync/etc/rsyncd.conf
log file = /usr/local/rsync/var/rsyncd.Log
pid file = /usr/local/rsync/var/rsyncd.Pid
lock file = /usr/local/rsync/var/rsyncd.Lock
#secrets file = /usr/local/rsync/etc/rsyncd.Pas
motd file = /usr/local/rsync/etc/rsyncd.Motd
hosts allow = 10.13.114.17/32
list = yes
uid = root
gid = root
use chroot = no
max connections = 30
[www]
path = /home/admin/www
comment = bakup www
read only = no
auth users = admin
vim /usr/local/rsync/etc/rsyncd.motd
 
welcome
这是欢迎词,可以不设置

在服务端和客户端都创建admin用户,用于同步
useradd admin

在源端生成公钥,拷贝到目标段,实现免密码登录
ssh-keygen -t rsa
拷贝.ssh/id_rsa.pub到服务器端的.ssh/authorized_keys文件中
然后设置权限为
在目标段执行
#chmod 600 .ssh/authorized_keys

 

启动源的rsync服务

rsync --daemon --config=/usr/local/rsync/etc/rsyncd.conf

查看
ps -ef |grep rsync
端口为873

第二步:源服务器端安装inotify

wget http://sourceforge.net/projects/inotify-tools/files/inotify-tools/3.13/inotify-tools-3.13.tar.gz/download
tar -zxvf inotify-tools-3.13.tar.gz
cd inotify-tools-3.13
./configure --prefix=/usr/local/inotify
make && make install
cd /usr/local/inotify/bin
#!/bin/sh
SRC=/home/admin/www
DST=admin@10.13.114.17:/home/admin
 
/usr/local/inotify/bin/inotifywait -mrq -e modify,delete,create,attrib ${SRC} | while read status
do
    su - admin -c "/usr/bin/rsync  -ahqzt  --delete  $SRC $DST"
    echo "`date +'%Y-%m-%d %H:%M:%S'`  ${status} has rsynced" >>rsync.log
done

启动monitor.sh
#chmod +x monitor.sh
#./monitor.sh &
可以放到rc.local实现开机启动
cat "/usr/local/inotify/bin/monitor.sh &" >> /etc/rc.local
然后在源端的/home/admin/www下创建删除文件,都会同步到目标端
注释:
/usr/local/bin/inotifywait -mrq -e modify,delete,create,attrib ${src}
-m 是保持一直监听
-r 是递归查看目录
-q 是打印出事件
-e create,move,delete,modify,attrib 是指 “监听 创建 移动 删除 写入 权限” 事件
/usr/bin/rsync -ahqzt --delete $SRC $DST
-a 存档模式
-h 保存硬连接
-q 制止非错误信息
-z 压缩文件数据在传输
-t 维护修改时间
-delete 删除于多余文件
rsync的完整参数说明:
-v, --verbose 详细模式输出
-q, --quiet 精简输出模式
-c, --checksum 打开校验开关,强制对文件传输进行校验
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-r, --recursive 对子目录以递归模式处理
-R, --relative 使用相对路径信息
-b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。
--backup-dir 将备份文件(如~filename)存放在在目录下。
-suffix=SUFFIX 定义备份文件前缀
-u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)
-l, --link

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • /etc/fstab 详解
      • nginx主主集群
      •  LVS-NAT和LVS-DR模式的实现详解
      •  RHCE考试之磁盘配额
      • 学习笔记:ACL详解
      •  LVM逻辑卷管理器
      • suse linux双网卡双网关配置
      •  Nginx主主负载均衡架构
      • ubuntu学习Mysql

      快速直达

      操作系统导航

      LinuxWindows虚拟机
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1