Rsync+inotify的优点:

使用rsync工具和inotify机制相结合,可以实现触发式部署(实时同步),只要原始(主)位置的文档发生变幻,则立即启用增量推送操作,否则处于静态等待状态,这样以来,就避免了分布式集群部署过程复杂的问题。

iontify缺点:

1.并发如果大于200个文件(10-100K),同步会有延迟

2.监控到事件后,调用rsync同步是单线程的(加&并发),sersync多进程同步

Rsync缺点:

sersync有重传机制(内置的定时任务),但是只重传一次,如果重传失败就会清空重传队列,即清空/tmp/rsync_fail_log.sh文件。这样就会造成sersync服务恢复正常后(即可以同步文件),数据同步的两个服务器数据不一致的现象因为,/tmp/rsync_fail_log.sh文件为空,而sersync只对发生变化的文件做实时同步。

架构图

需要两台linux服务器:

Rsync-10 192.168.157.30 (数据接收方)

Rsync-20 192.168.157.40 (数据发送方)

注意先关闭防火墙和selinux

systemctl stop firewalld

setenforce 0

查看服务器的内核版本是否达到2.6

uname -r

检查是否有三个文件(如下):

ls /proc/sys/fs/inotify/

max_queued_events  max_user_instances  max_user_watches

配置数据接收方:

首先安装rsync:

yum install rsync

修改rsync的配置文件(配置如下):

Vim /etc/rsyncd.conf

uid = root

gid = root

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

hosts allow = 192.168.157.0/24

[backup]

path = /backup/

comment = backup

read only = no

auth users = rsyncuser

secrets file = /etc/rsync.pass

创建一个共享的用户并且设置密码(注意我这边设置的密码为123):

useradd rsyncuser

passwd rsyncuser

生成验证文件,也就是把用户和密码加入到文件里面:

echo "rsyncuser:123" > /etc/rsync.pass

注意一定要给权限我这边给的是600:

chmod 600 /etc/rsync.pass

创建共享的目录(名字可以自定义,但是配置文件里path这块也需要改):

mkdir /backup

启动rsync服务:

rsync --daemon   #可加入/etc/rc.d/rc.local实现开机启动

systemctl start rsyncd

配置数据发送方:

将数据接收方创建用户的密码给写到文件里可以做到同步时不用再使用密码(注意也要给权限我这里给的600):

echo "123" > /etc/rsync.pass

chmod 600 /etc/rsync.pass

创建一个共享的目录:

mkdir /data/

测试是否可以同步到数据接收方:

先在阿里云里下载epel源:

网址:epel镜像_epel下载地址_epel安装教程-阿里巴巴开源镜像站 (aliyun.com)

先安装软件包:

yum -y install rsync inotify-tools

rsync -avz --password-file=/etc/rsync.pass /data/ rsyncuser@192.168.157.30::backup  #将本机的/data目录共享到192.168.157.30的backup的目录。

写脚本inotify_rsync.sh (注意只有当这个脚本在运行时才会实现文件共享,可以加到计划任务里,放到后台):

vim inotify_rsync.sh

#!/bin/bash

SRC='/data/'

DEST='rsyncuser@192.168.157.30::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

inotifywait常见的命令选项及其说明:

--timefmt <fmt>时间格式

rsync+inotify自动同步相关推荐

  1. 2-3-2 rsync+inotify备份同步数据

    RSYNC = Remote Sync 远程同步 高效,一定要结合shell 官网:https://rsync.samba.org Author: Andrew Tridgell, Wayne Dav ...

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

    Centos 7 下 配置 Rsync 以及 rsync+inotify 实时同步 rsync介绍 rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支 持增量备份,保持链接和 ...

  3. rsync+inotify远程同步

    rsync+inotify远程同步 一.rsync 1.rsync服务器 2.同步方式 3.rsync命令 4.配置源的两种表示方法 5.实验:本地复制(下行复制) 二.inotify 1.简介 2. ...

  4. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步

    1.什么是 Rsync? Rsync 是一个开源的快速备份工具,是Linux和UNIX操作系统默认安装的组件之一,可在不同主机间镜像同步整个目录,并支持增量备份文件传输,保持链接和权限,采用优化的同步 ...

  5. Rsync+inotify 实时同步

     Rsync+inotify 实时同步(触发式) ========================================================================= ...

  6. Linux之Rsync+inotify数据同步

    rsync远程同步 rsync(Remote Sync): 是一款开源,快速,多功能的可实现本地或远程主机数据同步与增量备份的优秀工具.(数据同步与备份的工具)可使本地主机不同分区或目录之间及本地和远 ...

  7. inotify介绍及rsync + inotify 实时同步备份

    1.前言 rsync (remote sync)是一款非常好的数据同步工具,能够通过对比同步双方的数据变动,实现增量同步,还可以通过LAN/WAN实现远程多台主机间文件的同步,还能结合crond任务计 ...

  8. 对采用rsync+inotify数据同步方式进行健康检测

    一.问题背景 我们平时一般都采用 rsync + inotify 的方式进行网站数据实时同步,有时会遇到不能正常推送到某台服务器,而不能及时发现,因此有必要对数据同步进行健康检测. 二.技术原理 在源 ...

  9. centos 6.5 rsync+inotify 实时同步

    主机名.ip: server 172.31.82.184 client  172.31.82.185 需求: 1.server端 "/data/server" 做为client端 ...

最新文章

  1. HDU 1513 Palindrome(最长公共子序列)
  2. mysql not in优化_MySQL性能优化 — 实践篇2
  3. 【Heritrix基础教程之4】开始一个爬虫抓取的全流程代码分析
  4. Selenium UI自动化测试(四)Python+Unittest+HTMLTestRunner测试报告—百度hao123实例
  5. Java中的length字段和length()方法
  6. WMI 脚本入门:第二部分 (MSDN)
  7. 查找Ubuntu下包的归属
  8. 算法:回溯十 挑选卡片pickup cards
  9. 张量分析初步和矢量恒等式
  10. 工程师职业发展的四个阶段
  11. 如何快速格式化重置Mac
  12. 网络文件共享服务主流----FTP文件传输协议
  13. 矩阵和向量的范式(Norms for Vectors and Matrices)
  14. Windows Server 2012 和 System Center 2012 SP1,Virtual Machine Manager 中启用的软件定义的网络
  15. 解决锚点定位刷新页面的问题
  16. XOR Guessing
  17. 开源WordPress博客主题二次元风-LoliMeow主题
  18. webpack构建中tree shaking、scope Hoisting(面试题)
  19. 全国电信/联通DNS服务器地址列表
  20. C#中使用设置(Settings.settings) Properties.Settings.Default .

热门文章

  1. Oracle行转列wm_concat()
  2. 每天一个linux命令之-iotop-监控磁盘IO
  3. js如何判断数组含有某值,in/includes/inArray/indexOf方案对比
  4. 带你认识路由器:路由器的两个平面和三张表
  5. jQuery遍历页面中的标签
  6. java 两位小数_java保留两位小数及多位小数的方法 | 夕辞
  7. 关于Redis缓存的面试题
  8. 2007十大商业创意(图)
  9. 重置手机,腾出60G空间
  10. java编程练习题_java编程练习题