centos7 inotify与rsync实现实时同步服务搭建

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos7 inotify与rsync实现实时同步服务搭建相关的知识,希望对你有一定的参考价值。

**需要准备两台虚拟机 一台rsync的客户端 192.168.1.14 一台rsync的服务器 192.168.1.12 inotify的服务器配置 yum install inotify-tools 192.168.1.14由于inotify是内核级别的应用,我们不能直接操作内核 需要借用一些关于inotify的相关工具 inotifywa /data/ 监控此目录 一次性操作,复制ssh渠道 在复制渠道/data目录下进行增删改查的操作 观察监控窗口的变化 inotifywait -mrq /data/ 持续递归监控此目录,-m持续 -q输出主要信息 -r 递归;复制ssh渠道 在复制渠道/data目录下进行增删改查的操作 观察监控窗口的变化 inotifywait -o /root/intify.log -drq /data/ 以进程方式递归监控/data目录,输出的主要信息到/root下的intify.log日志里面 ,-d以进程方式执行 -o+文件路径 ;指定输出的信息到指定文件下,复制ssh渠道 在监控窗口下进行增删改查的操作 在复制渠道的 /root/intify.log这个日志中观察变化 inotifywait -mrq --timefmt "%Y-%m-%d %H:%M" --format "%T %w%f event: %;e" /data/ -e CREATE,MOVED_TO,DELETE,ATTRIB 只监控指定操作的类型时间 -e+事件的类型;监控事件类型的内容复制ssh渠道 在复制渠道/data目录下进行增删改查的操作 观察监控窗口的变化, rsync服务器的搭建,独立端口为873 mkdir /backup 在192.168.1.12建一个目录,测试与对端主机的目录事件同步 vim /etc/rsyncd.conf use chroot = no max connections = 0 ignore errors exclude = lost+found/ log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid lock file = /var/run/rsyncd.lock reverse lookup = no hosrs allow = 192.168.1.0/24 [backup] path = /backup/ comment = backup read only = no auth users =rsyncuser secrets file = /etc/rsync.pass 在192.168.1.12rsync服务器端写入配置 此配置注释 1,2 行为指定以谁的身份运行 3 行为,是否支持 切根 4 行为,是否限制他的并发连接数 0为 不限制 5 行为 如果错误,做忽略错误执行 6 行为指定的类型文件夹直接过滤 不做备份 7,8,9 行为 日志 id 锁文件的备份路径 10 行为涉及到 ip 地址是否反向解析 为提高效率 设定no为不解析 11 行为控制访问用户的范围 12 行为rsync要把同步过来的数据存放的目录名字 13 行为指定同步过来的数据存放的path路径 14 行为存放同步文件夹的说明 15 行为存放同步文件夹的权限 16 行为对方连接rsync的用户名 17 行为对方连接rsync的口令存放的路径 注意;账号密码需要事先写好,同步过来的数据存放的文件夹也需要事先准备好 echo "rsyncuser:magedu" > /etc/rsync.pass chmod 600 /etc/rsync.pass 在192.168.1.12编写其他用户连接rsync服务器的账号与密码 并且把它放到一个指定文件里 注意设置600权限避免被其他人看到 systemctl start rsyncd 启动服务 echo "magedu" > /etc/rsync.pass chmod 600 /etc/rsync.pass rsync -avz --password-file=/etc/rsync.pass /data/ [email protected]::backup 在192.168.1.14 inotify客户端的的操作;配置客户端的密码文件, 并且测试是否同步成功 vim inotify_rsync.sh #!/bin/bash SRC=‘/data/‘ DEST=‘[email protected]::backup‘ inotifywait -mrq --timefmt ‘%Y-%m-%d %H:%M‘ --format ‘%T %w %f‘ -e create,delete,moved_to,close_write,attrib ${SRC} | while read DATE TIME DIR FILE;do FILEPATH=${DIR}${FILE} rsync -az --delete --password-file=/etc/rsync.pass $SRC $DEST && echo "At ${TIME} on ${DATE}, file $FILEPATH was backuped up via rsync" >> /var/log/changelist.log done 这是一个关于数据同步的无限死循环的脚本,需要在192.168.1.14 inotify一端编写执行 rm -rf /data/* touch /data/f{1..6} 在192.168.1.14最后测试数据是否可以同步 **```

以上是关于centos7 inotify与rsync实现实时同步服务搭建的主要内容,如果未能解决你的问题,请参考以下文章

centos7安装sersync2+rsync+inotify-tools实现文件实时同步

Centos7 下 配置 rsync 以及 rsync+inotify 实时同步

rsync与inotify实现数据实时同步

inotify+rsync监控实时同步

rsync+inotify实现文件实时同步-步骤详解

Centos7.4 搭建rsync+inotify 实现数据同步