配置rsync+inotify实时单向同步

定期同步的缺点:

执行备份的时间固定,延期明显,实时性差

当同步源长期不变化时,密集的定期任务是不必要的(浪费资源)

实时同步的优点:

一旦同步源出现变化,立即启动备份,实时性好

只要同步源无变化,则不执行备份,节省资源

创建主配置文件(vim /etc/rsyncd.conf)

address = 192.168.88.10 #rsync服务绑定IP

port 873 #默认服务端口873

log file = /var/log/rsyncd.log #日志文件位置

pid file = /var/run/rsyncd.pid #进程号文件位置

[web] #共享名:用来连接是写在url上的,切记 这里推荐共享名和共享目录名一样最好

comment = web directory backup #共享描述话语

path = /filesrc #实际共享目录

read only = no #是否仅允许读取

dont compress = *.gz *.bz2 #哪些文件类型不进行压缩

auth users = user1 #登录用户名自写

secrets file = /etc/rsyncd_users.db #认证所需账户密码文件(需自行创建-同上)

b.创建认证所需账户密码文件

# vim /etc/rsyncd_users.db

user1:123456

# chmod 600 /etc/rsyncd_users.db 须修改权限,否则登录报错

c.启动服务

# rsync --daemon

# netstat -antp | grep :873

d.设置映射用户对共享目录有权限(r)

# setfacl -m u:nobody:rwx /filesrc

inotify简介

inotify 是一个 Linux 内核特性,它监控文件系统,并且及时向专门的应用程序发出相关的事件警告,比如删除、读、写和卸载操作等。要使用 inotify,必须具备一台带有

2.6.13 版本的内核操作系统。

inotify两个监控命令:

inotifywait:用于持续监控,实时输出结果(常用)

inotifywatch:用于短期监控,任务完成后再出结果

inotify部署

yum -y install gcc*

tar -xf inotify-tools-3.14.tar.gz

cd inotify-tools-3.14

./configure && make && make install

inotifywait命令格式

格式:inotifywait -mrq -e 监控动作1,监控动作2 /监控目录 &

示例:inotifywait -mrq -e create,delete /filesrc &

-m:始终保持事件监听状态

-r:递归查询目录

-q:只打印监控事件的信息

监控动作:modify(内容),create,attrib(权限),move,delete

利用rsync+inotifywait结合脚本实现单向实时同步

vim src.sh

!/bin/bash

a="inotifywait -mrq -e create,delete /filesrc" filesrc是指共享的目录名

b="rsync -avz /filesrc/* root@192.168.88.20:/filedst" filedst是指同步到对方的那个目录

$a | while read directory event file #while判断是否接收到监控记录

do

$b

done

注:用户登录时要求免密码验证

脚本最好放在家目录下运行。

实验结果验证

在服务器端创建,删除文件,查看备份端是否正常

拓展:调整inotify监控的文件数量

调整inotify内核参数(/etc/sysctl.conf)

mak_queue_events 监控队列大小

mak_user_instances 最多监控实例数

max_user_watches 每个实例最多监控文件数

rsync单项同步的更多相关文章

  1. Rsync文件同步

    Rsync文件同步 本章结构 关于rsync 1.一款增量备份工具,remote sync,远程同步,支持本地复制或者与其他SSH.rsync主机同步,官方网站:http://rsync.samba. ...

  2. 真正的inotify+rsync实时同步 彻底告别同步慢

    真正的inotify+rsync实时同步 彻底告别同步慢       http://www.ttlsa.com/web/let-infotify-rsync-fast/     背景 我们公司在用in ...

  3. rsync命令(同步/备份数据)

    rsync命令rsync命令是一个远程数据同步工具,可通过 lam/wan快速同步多台主机间的文件.rsync使用所谓的 "rsync算法"来使用本地和远程两个主机之间的文件达到同 ...

  4. Linux实战教学笔记21:Rsync数据同步工具

    第二十一节 Rsync数据同步工具 标签(空格分隔): Linux实战教学笔记-陈思齐 ---本教学笔记是本人学习和工作生涯中的摘记整理而成,此为初稿(尚有诸多不完善之处),为原创作品,允许转载,转载 ...

  5. 架设rsync服务器同步数据

    什么是rsync rsync 是一个快速增量文件传输工具,它可以用于在同一主机备份内部的备分,我们还可以把它作为不同主机网络备份工具之用.本文主要讲述的是如何自架rsync服 务器,以实现文件传输.备 ...

  6. linux rsync实时同步

    rsync同步 同步与复制的差异:复制:完全拷贝源到目标同步:增量拷贝,只传输变化过的数据 同步操作:remote sync 远程同步支持本地复制,或与其他ssh,rsync主机同步.官方网站:htt ...

  7. Rsync数据同步工具

                                        Rsync数据同步工具 什么是Rsync? Rsync是一款开源的.快速的.多功能的,可以实现全量及增量的本地或原程数据同步备份 ...

  8. Rsync数据同步服务

    Rsync数据同步服务 Rsync软件适用与unix/linux/windows等多种操作系统平台 Rsync是一款开源的,快速的,多功能的,可实现全量及增量的本地或远程数据同步备份的优秀工具,可以实 ...

  9. rsync 文件同步和备份

    rsync 是同步文件的利器,一般用于多个机器之间的文件同步与备份,同时也支持在本地的不同目录之间互相同步文件.在这种场景下,rsync 远比 cp 命令和 ftp 命令更加合适,它只会同步需要更新的 ...

随机推荐

  1. 关于Java引用,你必须知道这些

    引用 Java 虚拟机接管了所有的内存分配与回收工作,极大地减少了程序员的工作量和错误率.GC 在回收内存时,通常采用被称为可达性分析的算法判断一个对象是否可以回收.而在可达性分析中,对象的引用有着决 ...

  2. 完美解决CentOS8 yum安装AppStream报错,更新yum后无法makecache的问题

    问题 CentOS 8 yum安装软件时,提示无法从AppStream下载 [root@C8-3 ~]# yum -y install httpd mariadb-server mariadb php ...

  3. python数据类型之set(集合)

    set集合 关注公众号"轻松学编程"了解更多. 1.概述 set与dict类似,但set是一组key的集合,与dict的区别在于set不存储value. 本质:无序且无重复元素的集 ...

  4. CF1295E Permutation Separation

    线段树 难得把E想出来,写出来,但却没有调出来(再给我5分钟),我的紫名啊,我一场上紫的大好机会啊 首先考虑是否能将$k$在$1$--$n-1$的每一个的最小代价都求出来 因为$k$从$i$到$i-1 ...

  5. Magicodes.IE 3.0重磅设计畅谈

    总体设计 Magicodes.IE导入导出通用库,支持Dto导入导出.模板导出.花式导出以及动态导出,支持Excel.Csv.Word.Pdf和Html. IE在去年年底重构一次之后,经过这么长时间的 ...

  6. shell脚本实现---Zabbix5.0快速部署

    shell脚本实现---Zabbix5.0快速部署 zabbix-server快速安装脚本 #!/bin/bash #Zabbix-Server 5.0#author:sunli#mail:sunli ...

  7. Python中列表逆序

    1.list.reverse() 该方法是直接在原来的列表里面将元素进行逆序排列,不需要创建新的副本用于存储结果. 这种方式,有好处也有坏处.好处是节省内存使用,因为我们不需要重新申请空间来保存最后的 ...

  8. nginx优化【收藏篇】

    1. 动态页返回码 2. 错误页面优化 3. 连接数优化 4.配置优化 5.日志优化 关于运维学习.分享.交流,笔者开通了微信公众号[大隆爱分享],感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的 ...

  9. 同步FIFO学习笔记

  10. 1-03 Java的基本程序设计结构

    1-03 Java的基本程序设计结构 3.1 & 3.2 在一个单词中间使用大写字母的方式称为骆驼命名法.以其自身为例,应该写成CamelCase). 与C/C++一样,关键字void表示这个 ...