rsync + inotify实现文件实时同步
服务端主机: 192.68219.132
客户端主机:192.168.219.140
端口:873
部署用户:root 或者 非root用户配有sudo权限用户
rsync 服务端部署及配置
创建同步用户:rsync
[root@node132 ~]# useradd rsync
[root@node132 ~]# passwd rsync
输入两次密码
创建备份目录
mkdir /data/rsync
chown rsync:rsync /data/rsync
修改配置文件
vim /etc/rsyncd.conf
uid = rsync
gid = rsync
use chroot = no
max connections = 20
pid file = /home/rsync/rsyncd.pid
log file = /home/rsync/rsyncd.log
lock file = /home/rsync/rsyncd.lock
secrets file = /etc/rsyncd.passwd
[backup]
path = /data/rsync
ignore error
read only = false
list = false
auth users = rsync
list = no
修改认证文件
vim /etc/rsyncd.passwd
rsync:yourpasswd
修改认证文件权限
chmod 600 /etc/rsyncd.passwd
启动服务端
rsync --daemon --config=/etc/rsyncd.conf
rsync 客户端部署及配置
修改配置文件
vim /etc/rsyncd.conf
log file = /var/log/rsyncd.log
修改认证文件
vim /etc/rsyncd.passwd
server rsync's passwd
# 注:客户端密码文件中只需要填写服务端rsync的密码即可
启动服务端
rsync --daemon
客户端配置 inotify 服务
上传inotify安装包
http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
tar -xf inotify-tools-3.14.tar.gz && cd inotify-tools-3.14
./configure
make && make install
创建 inotify 脚本
vim monitor.sh
#!/bin/bash
SRC=/data/
DEST=rsync@192.168.219.132::backup
/usr/local/bin/inotifywait -mrq -e modify,delete,create,attrib ${SRC} | while read status
do
/usr/bin/rsync -rltDvz /data/ $DEST --password-file=/etc/rsyncd.passwd
echo "`date +'%Y-%m-%d %H:%M:%S'` ${status} to ${DEST}" >> /home/rsync/rsync.log
done
添加执行权限
chmod +x monitor.sh
启动后台运行
sh monitor.sh &