rsync+inotify实现实时单向同步
源服务器 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
相关新闻>>
- 发表评论
-
- 最新评论 更多>>