rsync 和 inotify 结合
我们知道 rsync 可以实现推送和拉取,而 inotify-tools 借助内核的 inotify 机制实现了文件的 实时监控。因此,借助这个思路,我们可以通过使用 shell 脚本,调整 inotifywait 的输出格式, 然后借助 inotifywait 的监控文件或目录实时变化去通知 rsync 做相应的推送或者拉取操作! 实时备份脚本
[root@rsync-client-inotify ~]# cat auto_rsync.sh
src1='/data/web/redhat.sx/'
src2='/data/web_data/redhat.sx/'
des1=web
des2=data
host1=172.16.100.1
host2=172.16.100.1
user=rsync_backup
allrsync='/usr/bin/rsync -rpgovz --delete --progress'
/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w %w
%f %e' -e modify,delete,create,attr
ib $src | while read DATE TIME DIR FILE EVENT;
do
case $DIR in
${src1}*)
$allrsync $src1 $user@$host1::$des1 --password-file=/etc/rsync.password && echo "
$DATE $TIME $FILE was rsynced" &>> /var/log
/rsync-$des1-$host1.log
$allrsync $src1 $user@$host2::$des1 --password-file=/etc/rsync.password && echo "
$DATE $TIME $FILE was rsynced" &>> /var/log
/rsync-$des1-$host2.log;;
${src2}*)
$allrsync $src2 $user@$host1::$des2 --password-file=/etc/rsync.password &&
echo "
$DATE $TIME $FILE was rsynced" &>> /var/lo g/rsync-$des2-$host1.log
$allrsync $src2 $user@$host2::$des2 --password-file=/etc/rsync.password &&
echo "
$DATE $TIME $FILE was rsynced" &>> /var/lo
g/rsync-$des2-$host2.log;;
esac done
加入开机自启动
另外,为了保证开机之后自动开始实时同步备份,因此我们需要将该脚本加入开机自启动,
并且设置在启动的时候,将脚本执行输出重定向到指定日志文件以及放到后台运行!
[root@rsync-client-inotify ~]# chmod o+x auto_rsync.sh
[root@rsync-client-inotify ~]# mv auto_rsync.sh /usr/sbin/ [root@rsync-client-inotify ~]# vim /etc/rc.local
Bash /usr/sbin/auto_rsync.sh &>> /var/log/auto_rsync.log & 我在这里模拟分别向/data/web/redhat.sx 和/data/web_data/redhat.sx 各写入 10 个 10M 的小文件
[root@rsync-client-inotify ~]# bash /usr/sbin/auto_rsync.sh &>> /var/log/auto_rsync. log &
[1] 40802
[root@rsync-client-inotify ~]# for i in {1..10};do
dd
if=/dev/zero of=/data/web/redhat.
sx/$i.html bs=10M count=1 ;dd if=/dev/zero of=/data/web_data/redhat.sx/$i.html bs
=10M count=1;done
rsync 和 inotify 结合的更多相关文章
- 烂泥:rsync与inotify集成实现数据实时同步更新
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 上篇文章我们介绍了如何使用rsync同步文件,这篇文章我们再来介绍下,如何把rsync与inotify集成实现数据的实时同步. 要达到这个目的,我们需要 ...
- rsync与inotify 数据同步
发布:thebaby 来源:脚本学堂 [大 中 小] 本文介绍下,在linux系统中,使用rsync与inotify实现数据同步的一个实例,有研究文件同步的朋友可以作个参考.本文转自:ht ...
- rsync+sersync+inotify实现服务器间文件同步之一
rsync+sersync+inotify实现服务器间文件同步之一:rsync安装配置 2013年12月14日 ⁄ Linux管理, 服务器集群技术 ⁄ 共 4925字 ⁄ rsync+sersync ...
- (转)Linux下通过rsync与inotify(异步文件系统事件监控机制)实现文件实时同步
Linux下通过rsync与inotify(异步文件系统事件监控机制)实现文件实时同步原文:http://www.summerspacestation.com/linux%E4%B8%8B%E9%80 ...
- (openssh、telnet、vsftpd、nfs、rsync、inotify、samba)
(openssh.telnet.vsftpd.nfs.rsync.inotify.samba) 一:OpenSSH服务与Telnet服务(必须掌握) 前言:OpenSSH是加密传输,Telnet是明文 ...
- rsync unison+inotify双向实时同步
rsync多线程同步 A:文件服务器 ip:10.10.1.10 B:备份服务器 ip:10.10.1.11 1.在B服务器上安装rsync软件 tar xzvf rsync-3.1.0.tar.gz ...
- Rsync结合Inotify 实时同步配置(更新之前繁琐的传输认证)
今天一位CU的友友根据之前介绍过 通过rsync+inotify-tools+ssh实现触发式远程实时同步 配置分发系统,但是由于认证繁琐,很容易出错,我今天重新整理了下,用rsync密码文件pas ...
- centos7中使用Rsync和inotify同步文件
一. 环境说明 由于web服务器所提供的网站数据需要保持一致,但当服务器越来越多时,这些主机之间同步网站数据会很麻烦. 解决方案是在后端建立一个数据发布服务器,该服务器作为rsync客户端,通过ino ...
- rsync+inotify实时数据同步
没有实际的用过,先mark一下,后面实践. https://www.osyunwei.com/archives/7447.html 一.为什么要用Rsync+sersync架构? 1.sersync是 ...
随机推荐
- HDU-6705 Path
Description You have a directed weighted graph with n vertexes and m edges. The value of a path is t ...
- Spring Cloud教程(十)自定义引导配置属性源
可以通过在org.springframework.cloud.bootstrap.BootstrapConfiguration键下添加条目/META-INF/spring.factories来训练引导 ...
- 前端每日实战:142# 视频演示如何用 CSS 的 Grid 布局创作一枚小鸡邮票
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/mGZbmQ 可交互视频 此视频是可 ...
- SpringBoot 集成mongodb(2)多数据源配置
github:https://github.com/xiaozhuanfeng/mongoProj 现MongoDB有两个数据库: pom.xml: <!-- mongodb 配置 --> ...
- struts2 token 防止表单重复提交
1.jsp页面 输入框,提交按钮 <%@ page language="java" contentType="text/html" pageEncodi ...
- SoapUI常用的参数化方法
本篇文章来讲一下SoapUI在使用中常用的参数化方法字段参数化和使用DataSource调用Excel中的 数据给接口参数化,其中DataSource功能SoapUI开源版没有,大家可以使用破解版, ...
- DP---DAG、背包、LIS、LCS
DP是真的难啊,感觉始终不入门路,还是太弱了┭┮﹏┭┮ DAG上的DP 一般而言,题目中如果存在明显的严格偏序关系,并且求依靠此关系的最大/最小值,那么考虑是求DAG上的最短路或者是最长路.(据说 ...
- 浅谈vue对seo的影响
不可否定的是,vue现在火.但是在实际项目中,特别是像一下交互网站,我们不可避免会考虑到的是seo问题,这直接关系到我们网站的排名,很多人说用vue搭建的网站不能做优化,那我们真的要放弃vue,放弃前 ...
- String类为什么是final
String 本身一个对象,对象在jvm启动的时候就要实例化和其他类调用就要实例化,第一性能,第二安全,因为string的高频繁的使用,如果被继承,哪里性能将会大大降低,因为不能被继承,换句话来说就比 ...
- 一些基础的ES6 语法
<script> window.onload = function () { //---------------------------let----------------------- ...