inotify+rsync结构图:
服务端(backup服务器):
由图可以看到backup的IP为192.168.1.4
需要安装rsync软件
yum -y install rsync
需要创建用来接收同步备份过来的数据目录/backup
mkdir /backup
还需要一个备份目录管理用户及授权
useradd -M -s /sbin/nologin rsync echo "rsync:123123" >>/etc/rsync.password chmod 600 /etc/rsync.password chown -R rsync.rsync /backup/
还要创建一个rsync服务配置文件:/etc/rsyncd.conf
uid = rsync gid = rsync use chroot = no max connections = 200 timeout = 300 pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock log file = /var/log/rsyncd.log ignore errors read only = false list = false fake super = yes hosts allow = 192.168.1.0/24 hosts deny = 0.0.0.0/32 auth users = rsync secrets file = /etc/rsync.password [backup] comment = "backup dir by yyang" path = /backup
然后就可以启动服务,查看状态了
rsync --daemon ps -ef | grep rsync root 15978 1 0 15:08 ? 00:00:00 rsync --daemon root 15980 1557 0 15:08 pts/0 00:00:00 grep --color=auto rsync ss -utpln | grep rsync tcp LISTEN 0 5 *:873 *:* users:(("rsync",pid=15978,fd=3)) tcp LISTEN 0 5 :::873 :::* users:(("rsync",pid=15978,fd=5))
客户端(clent):
需要安装rsync+inotify-tools两个工具
yum -y install rsync inotify-tools
一个用来同步数据的目录/data
mkdir /data
创建一个密码文件
echo "123123" >>/etc/rsync.password chmod 600 /etc/rsync.password
一个用来监控数据变化进行同步的脚本:inotify.sh
#!/bin/bash ################################################# inotifywait -rmq --format "%w%f" -e create,delete,moved_to,close_write /data|while read line do rsync -az --delete /data/ rsync@192.168.1.4::backup --password-file=/etc/rsync.password done
执行脚本并放入后台运行
sh inotify.sh &
测试:
在clent端的/data目录下,创建或者删除数据,backup端/backup目录下数据会同步修改即为成功。