当前位置: 首页 > 编程日记 > 正文

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

Centos 7 下 配置 Rsync 以及 rsync+inotify 实时同步

rsync介绍

rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支
持增量备份,保持链接和权限,且采用优化的同步算法,在传输前执行压缩,因此非
常适用于异地备份、镜像服务器等应用。

rsync的官方站点是http://rsync.samba.org/,由 Wayne Davison进行维护。作为一
种最常用的文件备份工具,rsync往往是 Linux和UNIX系统默认安装的基本组件之一

rsync 源服务器 配置

rpm -q rsync 可以查看系统自带了rsync服务vim /etc/rsyncd.comuid = nobody     gid = nobodyuse chroot = yes    ##禁锢在源目录address = 192.168.x.x     ##监听地址port 873     ##监听端口log file = /var/log/rsyncd.log   ##日志文件位置pid file = /var/run/rsyncd.pid    ##进程ID位置hosts allow = 192.168.x.0/24    允许访问的客户机地址[wwwroot]      ##共享模块名称path = /var/www/html     ##源目录的实际路径comment = www.abc.cnread 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.dbbackuper:abc123     ##格式为   账户名:密码chmod 600 /etc/rsyncd_users.db    ##因为账户信息明文存放,调整文件权限避免账号信息泄露rsync --daemon    ##启动rsync服务netstat -ntap |grep rsyncrsync以873端口开启rsync 源服务器就配置完成了

使用rsync 备份工具

在发起端 有两种方式可以访问rsync同步源,并下载到本地 /opt 目录下进行备份格式一:
rsync -avz backuper@192.168.x.x::wwwroot /opt/   格式二:
rsync -avz rsync://backuper@192.168.x.x/wwwroot /opt/这两种方法都需要进行交互 输入密码后即可进行备份。为了在同步过程中不需要输入密码,需要创建一个密码文件。
vim /etc/server.pass
abc123rsync -az --delete --password-file=/etc/server.pass backuper@192.168.x.x::wwwroot /opt
## 免交互进行备份

配置 rsync + inotify 实时同步

工作原理

Linux内核从2.6.13版本开始提供了 inotify通知接口,用来监控文件系统的各种
变化情况,如文件存取、删除、移动、修改等。利用这一机制,可以非常方便地实现
文件异动告警、增量备份,并针对目录或文件的变化及时作出响应。

将rsync工具与inotify机制相结合,可以实现触发式备份(实时同步)—只要
原始位置的文档发生变化,就立即启动增量备份操作,否则处于静默
等待状态。这样,就避免了按固定周期备份时存在的延迟性、周期过密等问题。

实验过程


调整inotify内核参数
vim /etc/sysctl.conffs.inotify.max_queued_events = 16384   ##监控事件队列
fs.inotify.max_user_instances = 1024    ##最多监控实例数
fs.inotify.max_user_watches = 1048576    ##每个实例最多监控文件数tar xzvf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14./configuremake && make installinotifywait -mrq -e modify,create,move,delete /var/www/html/
## -m表示持续监控  -r 表示递归整个目录  -q 表示简化输出信息  -e 用来指定要监控哪些事件此时在 /var/www/html 下的操作会被同步监控并显示接下来编写触发时同步脚本vim 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.x.x::wwwroot/"
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
doif [ $(pgrep rsync | wc -l) -le 0 ] ; then$RSYNC_CMDfi
donechmod +x inotify.sh此脚本用来检测本机 /var/www/html 的变动情况,一旦有更新触发 rsync同步操作,上传备份至 192.168.x.x 的 /var/www/html 目录下

转载于:https://blog.51cto.com/13625924/2151510

相关文章:

网站排名下降的原因

做站长,都经常遇到网站被降权、排名下降、百度快照后退等问题,这些也是企业网站最常见的一些问题,企业网站为何会被降权,通常是什么原因造成的,下面我在这里分享下我在北大青鸟学到的一些知识,简单的和大家…

@程序员,Python 3还有哪些未Get的潜藏技能?| 技术头条

作者 | Vinko Kodžoman翻译 | Monanfei编辑 | 阿司匹林,Rachel【导读】在 Python 3 推出后,人们开始逐步将基于Python 2 的代码迁移至 Python 3 。但在迁移过程中,很多代码都未能使用到 Python 3 提供的新功能。本文作者介绍了相关功能的介绍…

【Qt】QtCreator中配置clang-format

1、安装clang-format sudo apt install clang-format2、添加插件Beautifier 在QtCreator–>Help–>About Plugins…中添加插件Beautifer,添加后要重启QtCreator ClangCodeModel是否需要不清楚?反正我添加了 3、配置Clang Format 在Tools --> Options…–>Beau…

DVWA提示Unable to connect to the database.

因为数据库更换了默认端口,所以得在DVWA也进行相应的设置,但是设置的位置错了,导致一直连接不上数据库。 后面看到注释才发现是这个设置仅限PostgreSQL/PGSQL使用,至于Mysql更换端口以后直接设置在server地址后面即可。 刷新一下&…

LINQ to SQL语句之 Count/Sum/Min/Max/Avg

Count/Sum/Min/Max/Avg操作符 适用场景:统计数据吧,比如统计一些数据的个数,求和,最小值,最大值,平均数。 Count 说明:返回集合中的元素个数,返回INT类型;不延迟。生成SQ…

【Qt】Qt再学习(十):鼠标拖拽(dragdrop)QGraphicsItem示例

1、QGraphicsItem实现拖拽源 实现方法,继承QGraphicsItem,重载鼠标按下、移动、释放事件处理函数 class ColorItem : public QGraphicsItem {... protected:void mousePressEvent(QGraphicsSceneMouseEvent *event) override;void mouseMoveEvent(QGraphicsSceneMouseEvent…

Java并发 -- JMM

文章基于jdk1.7,通过学习《Java并发编程的艺术》,对Java内存模型的理解 并发编程模型的两个关键问题 线程之间如何通信线程之间如何同步上面所说的线程指的是并发执行的活动实体。 线程之间的通信机制有两种:共享内存和消息传递 在共享内存的…

开源!mathAI手写拍照自动能解高数题,还不快试试?

作者 | 红色石头转载自 AI有道(id:redstonewill)让我们不妨先来盘点下从 2016 年起过去三年间 Google I/O 开发者大会亮相的重磅 AI 产品:深度好玩!文章开始红色石头先在草稿纸上写一道高数微积分题目给大家看看如何求解&#xf…

黄聪:IE6下用控制图片最大显示尺寸

div img { max-width:600px; width:600px; width:expression(document.body.clientWidth>600?"600px":"auto");overflow:hidden; } ◎ max-width:600px; 在IE7、FF等其他非IE浏览器下最大宽度为600px。但在IE6中无效。 ◎ width:600px; 在所有浏览器中…

漫画:有趣的海盗问题 (完整版)

————— 第二天 —————海盗分金币问题:有5个海盗,获得了100枚金币,于是他们要商量一个方法来分配金币。商议方式如下:1. 由5个海盗轮流提出分配方案。2. 如果超过半数海盗(包括提出者)同意该方案&…

【Qt】error: undefined reference to `vtable for MainWindow‘

1、问题描述 在写一个demo时,想尽量简单,就把MainWindow类的定义和实现都写在main.cpp中,结果编译时报错: main.cpp:-1: error: undefined reference to `vtable for MainWindow :-1: error: collect2.exe: error: ld returned 1 exit status2、原因分析 错误信息vtable…

Sql Server:创建用户并指定该用户只能看指定的视图

1,在sql server中选择好要操作的数据库2,--当前数据库创建角色 exec sp_addrole seeview--创建了一个数据库角色,名称为:[seeview]3,--分配视图权限 GRANT SELECT ON veiw TO [角色] --指定视图列表 指定seeview这个角色可以查看的视图表名称&#xff1…

10 款可以找回删除文件的好软件

电脑突然死机或者断电,硬盘数据丢失?U盘重要文件不小心删掉了? 电脑中毒,文件丢失或无法读取? 系统突然崩溃,重要文件丢失?使用计算机最怕的就是象以上这些突如其来的灾难性故障导致重要数据的丢失,误操作、计算机病毒的***和软、硬件故障等天灾人祸…

万万没想到,逛B站也能学编程了

作者 | 徐麟,某互联网公司数据分析狮转载自 | 数据森麟(id:shujusenlin)前言很多人提到B站,首先想到的就会是二次元或者鬼畜,上个月,我们公众号也发表了一篇关于B站鬼畜视频的文章:《…

【Qt】Qt再学习(十一):图形视图框架(Graphics View Framework)的一个小demo

1、简介 使用的主要类:QGraphicsTextItem、QGraphicsScene、QGraphicsView。 QGraphicsTextItem继承自QGraphicsObject,而QGraphicsObject继承自QObject和QGraphicsItem; QGraphicsItem可以是2D曲面上的图形项目,例如线条,矩形,文本甚至自定义项目,本例中演示的文本QGr…

国产海翼号水下滑翔机首次应用于北极科考

中国第九次北极科学考察队7月28日在白令海公海区域成功布放我国自主研发的“海翼”号水下滑翔机。这是我国自主研发的水下滑翔机首次在白令海布放,也是首次应用于中国北极科考。 北京时间28日5时23分,考察队队员们将“海翼”号水下滑翔机缓缓送入海中。在…

高性能网站性能优化与系统架构(ZT)

转载请保留出处:俊麟 Michael’s blog (http://space.itpub.net/7311285/viewspace-97) 我在CERNET做过拨号接入平台的搭建,而后在Yahoo&3721从事过搜索引擎前端开发,又在MOP处理过大型社区猫扑大杂烩的架构升级等工作,同时自…

非常全面的AutoML资源,看这个就够了!

整理 | Rachel责编 | 琥珀出品 | AI科技大本营(id:rgznai100)深度学习的发展促进了相关应用的涌现。但是,深度学习模型往往具有非常大的参数搜索空间,为了保证模型的效果,经常需要机器学习专家耗费大量的时…

【Qt】Qt再学习(十二):QGraphicsItem

1、简介 QGraphicsItem是用于场景QGraphicsScene中在所有图形项的基类,它是一个纯虚类,不能直接使用。子类化QGraphicsItem后,需要重新实现图形项的几何形状、碰撞检测、绘画实现、事件处理。 常用图形项: 类名图形项QGraphicsEllipseItem椭圆QGraphicsLineItem直线QGrap…

一堆乱七八糟绝不正经的排序算法

原文 索引 猴子排序 钻石排序(戴蒙德排序) 恶魔排序 珠排序 地精排序(怂货排序) 智能设计排序 1. 猴子排序 (提供者cy1306110516) 猴子排序的思想源自于著名的无限猴子定理。 既然猴子们能敲出《哈姆雷…

好久没有更新了!

好久没有更新博客了,主要是因为本人在从事信息化监理行业,遇到了困惑的事情,不时地在问自己,选择这个行业,对吗? 从事这个行业,已经换了两家公司,对于信息化监理事业却秉承不同的理念…

多人开发情况下的字符串本地化

项目开发中,独立开发的还是少数。经常会有多人开发的情况,这种情况,如果多人同时操作本地化文件,极有可能会存在冲突。另一方面,我们又不希望自己的本地化文件受到对方的污染,也就是说,我们不希…

【Ubuntu】制作usb启动盘安装ubuntu18.04时报错:“failed to load ldlinux.c32”

1、问题描述 使用UltraISO制作ubuntu18.04操作系统的usb启动盘后,按照时报错: failed to load ldlinux.c32ubuntu16.04、ubuntu14.04没有遇到这个问题。 2、原因 未知 3、解决方法 参考博客 https://blog.csdn.net/tnaig/article/details/81139887…

清华AI学堂班:姚期智担任首席教授,2019年首批招收30人

整理 | 琥珀出品 | AI科技大本营(id:rgznai100)清华流传一句话,半国英才聚清华,而清华一半英才在“姚班”。据不完全统计,自 2005 年开班至今,“姚班”已有10位毕业生进入学界执教斯坦福大学、普…

php函数get_magic_quotes_gpc详解

2019独角兽企业重金招聘Python工程师标准>>> set_magic_quotes_runtime是用来设置PHP 环境配置的变量 magic_quotes_runtime 值。 0-关闭 1-打开 程序中检测状态用get_magic_quotes_runtime,返回 0 表示关闭本功能;返回 1 表示本功能打开。若magic_quote…

掌声送给TensorFlow 2.0!用Keras搭建一个CNN | 入门教程

作者 | Himanshu Rawlani译者 | Monanfei,责编 | 琥珀出品 | AI科技大本营(id:rgznai100)2019 年 3 月 6 日,谷歌在 TensorFlow 开发者年度峰会上发布了最新版的 TensorFlow 框架 TensorFlow2.0 。新版本对 TensorFlow…

【Qt】Qt再学习(十四):QGraphicsView

1、简介 QGraphicsView提供显示QGraphicsScene的功能,它继承自QAbstractScrollArea,因此它还是一个带滚动条的窗口,这样可以实现只场景的一部分。还可以创建多个QGraphicsView来显示同一个QGraphicsScene,类似 QTableView、QTreeView和QListView的显示,官方专业的描述是“…

6月27日任务 配置Tomcat监听80端口、配置Tomcat虚拟主机、Tomcat日志

2019独角兽企业重金招聘Python工程师标准>>> 16.4 配置Tomcat监听80端口 1. vim /usr/local/tomcat/conf/server.xml Connector port"8080" protocol"HTTP/1.1" 修改为Connector port"80" protocol"HTTP/1.1" 2. /usr/loca…

Excel导入SQL数据库完整代码

protected void studentload_Click(object sender, EventArgs e){//批量添加学生信息SqlConnection conn DB.dataBaseConn();//链接数据库conn.Open();try{string fileurl typename(studentFileUpload);//调用typename方法取得excel文件路径DataSet ds new DataSet();//取得…

33关Python游戏,测试你的爬虫能力到底及格不?

作者 | 苏克1900责编 | 胡巍巍转载自高级农民工(ID: Mocun6)最近在网上看到一个非常有意思的 Python 游戏通关网站,一共有 33 关,每一关都需要利用 Python 知识解题找到答案,然后进入下一关。很考验对 Python 的综合掌…