阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

rsync+inotify实现远程实时同步

225次阅读
没有评论

共计 3008 个字符,预计需要花费 8 分钟才能阅读完成。

rsync 介绍

rsync,英文全称是 remote synchronize,是一款实现远程同步功能的免费软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息。rsync 提供了一个客户机和远程文件服务器的文件同步的快速方法,而且可以通过 ssh 方式来传输文件。甚至还可以实现只同步一个文件里有变化的内容部分,所以可以实现快速的同步备份数据。同时,rsync 还可以实现同步本地数据、删除文件和目录的功能。

inotify 介绍

Inotify 是一个 Linux 内核特性,它监控文件系统,并且及时向专门的应用程序发出相关的事件警告,比如删除、读、写和卸载操作等。您还可以跟踪活动的源头和目标等细节。

rsync+notify 实现自动同步

如果要实现定时同步数据,可以在客户端将 rsync 加入定时任务,但是定时任务的同步时间粒度并不能达到实时同步的要求。在 Linux kernel 2.6.13 后提供了 inotify 文件系统监控机制。通过 rsync+inotify 组合可以实现实时同步。

实验要求:

源服务器:192.168.177.132(rsync,httpd)

发起端:192.168.177.132(rsync,httpd,inotify-tools)

源服务器

# rpm -q rsync  // 查看 rsync 有没有安装
# vim /etc/rsyncd.conf  //rsync 的配置文件

 uid = nobody
 gid = nobody
 use chroot = yes
 address = 192.168.177.132
 port 873
 log file = /var/log/rsyncd.log
 pid file = /var/run/rsyncd.pid
 hosts allow = 192.168.177.0/24

 [wwwroot]
 path = /var/www/html
 comment = www.kgc.cn
 read only = yes
 dont compress  = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
 auth users = backuper
 secrets file = /etc/rsyncd_users.db
# vim /etc/rsyncd_users.db
  backuper:abc123  // 账号跟密码的格式
# chmod 600 /etc/rsyncd_users.db
# yum install httpd -y  // 安装 web 服务
# rsync –daemon  // 启动 rsync 服务
# systemctl stop firewalld.service  // 关闭防火墙
# setenforce 0  // 增强性安全功能
# chmod 777 /var/www/html/
# cd /var/www/html
# echo “this is test” > 123.txt

rsync+inotify 实现远程实时同步

rsync+inotify 实现远程实时同步

rsync+inotify 实现远程实时同步

rsync+inotify 实现远程实时同步

发起端

# systemctl stop firewalld.service
# setenforce 0  // 必须先关闭防火墙
交互,输入的是源服务器的地址
# rsync -avz backuper@192.168.177.132::wwwroot /opt/ 
免交互,无需输入密码
# vim /etc/server.pass
# chmod 600 /etc/server.pass
# rsync -az –delete –password-file=/etc/server.pass backuper@192.168.177.132::wwwroot /opt

rsync+inotify 实现远程实时同步

rsync+inotify 自动同步

inotify 装在发起端

rsync 在源服务器上

源服务器:
# vim /etc/rsyncd.conf
  read only = no
# pkill -9 rsync
# cd /var/run/
# rm -rf rsyncd.pid // 删除 pid 进程
# rsync –daemon  // 重启服务
发起端:
# chmod 777 /var/www/html/
# tar zxvf inotify-tools-3.14.tar.gz -C /opt // 解压
# cd inotify-tools-3.14/
  ./configure
# yum install gcc gcc-c++ -y  // 安装编译环境
# make && make install
# vim /etc/sysctl.conf  // 进行优化
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048576
# sysctl -p  // 立即生效
# inotifywait -mrq -e modify,create,move,delete /var/www/html/  // 对站点进行监控
# vim /opt/inotify.sh  // 编写能同步的脚本
#!/bin/bash
INOTIFY_CMD=”inotifywait -mrq -e modify,create,attrib,move,delete /var/www/html/”
RSYNC_CMD=”rsync -azH –delete –password-file=/etc/server.pass /var/www/html/ backuper@192.168.177.132::wwwroot/”
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
    if [$(pgrep rsync | wc -l) -le 0 ] ; then
        $RSYNC_CMD
    fi
done
# chmod +x inotify.sh
# ./inotify.sh

rsync+inotify 实现远程实时同步

rsync+inotify 实现远程实时同步

rsync+inotify 实现远程实时同步

rsync+inotify 实现远程实时同步

CentOS 6.5 rsync+inotify 实现数据实时同步备份 https://www.linuxidc.com/Linux/2016-11/137655.htm
rsync+inotify 实现数据的实时同步 https://www.linuxidc.com/Linux/2017-01/139778.htm
rsync+inotify 实现服务器之间文件实时同步详解  https://www.linuxidc.com/Linux/2016-11/137659.htm
Rsync 结合 Inotify 实时同步配置  https://www.linuxidc.com/Linux/2017-02/140877.htm
RSync 实现数据备份  https://www.linuxidc.com/Linux/2017-06/144913.htm
inotify+rsync 实现数据实时同步  https://www.linuxidc.com/Linux/2017-10/147901.htm
rsync+inotify 实现数据的实时备份  https://www.linuxidc.com/Linux/2016-11/137630.htm
rsync+inotify 实现数据自动同步  https://www.linuxidc.com/Linux/2017-03/141717.htm
使用 rsync 实现数据实时同步备份  https://www.linuxidc.com/Linux/2017-05/143462.htm
unison+inotify 实现数据实时双向同步  https://www.linuxidc.com/Linux/2018-01/150468.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3008字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中