inotifywait命令

mac中的是:fswatch,fsevents-tools。

1.命令格式:

inotifywait [参数] [events] [targetDir]

2.命令功能:

平时 inotifywait 会挂起在那里,直到文件/目录发生了要引起关注的事件后,它会退出并输出事件发生的场所、事件的名称以及引起事件的文件(当事件发生在目录上时才会输出).

3.命令参数:

inotifywait 最常用的选项有两个:

-r 表示递归监控子目录中文件发生的事件

-e 指定要监控的事件列表。

对于备份系统来说,只需要监控 modify、create和delete三种事件就行了。

4.使用实例:

inotifywait -r -e modify,create,delete /tmp

表示监控 /tmp 目录及其子目录中文件修改、文件创建和文件删除三种事件。

rsync命令

1.命令格式:

rsync [参数] [原目录] [目标目录]

2.命令功能:

rsync是一款快速增量备份工具。它的具有以下几个特点使得它很适合用作做备份的工具:

  • 增量备份,只会传输修改过的内容

  • 可以在传输过程中实时解压缩,减少带宽消耗

  • 可以保持原来文件的权限、事件、软硬链接

  • 即支持本机复制,也支持远程复制

3.命令参数:

-a 表示archive mode,即备份目录下的所有内容(包括子目录中的内容),并且保持软链接、文件属性、文件修改事件、文件的所有者和宿主信息不变,并且同步字符/块设备以及命名socket和fifo等特殊文件。

-v 表示输出备份的详细信息

-z 表示传输时进行压缩

–delete 删除目标目录中源目录中没有的文件

4.使用实例:

rsync -avz --delete  src/ foo:/data

src/ 表示要备份的是src目录下的所有内容,注意这里最后的 / 不能去掉,否则会把src目录本身备份过去

foo:/data 表示备份的目的地是foo主机下的 /data/ 目录

构建实时备份系统

用个 while 死循环把两个工具整合起来

#!/bin/bash

if [[ $# -ne  ]];then
cat<<EOF
Usage $(basename $) source_dir [host:]dest_dir
EOF
exit
fi source_dir=$
dest_dir=$
while :
do
inotifywait -r -e modify,create,delete ${source_dir} && rsync -avz ${source_dir}/ ${dest_dir} --delete
done

Linux-(inotify-tools&rsync)的更多相关文章

  1. (转)Linux下通过rsync与inotify(异步文件系统事件监控机制)实现文件实时同步

    Linux下通过rsync与inotify(异步文件系统事件监控机制)实现文件实时同步原文:http://www.summerspacestation.com/linux%E4%B8%8B%E9%80 ...

  2. Sersync实现触发式文件同步 替代inotify和rsync

    Sersync实现触发式文件同步 替代inotify和rsync Pyinotify是一个Python模块,用来监测文件系统的变化. Pyinotify依赖于Linux内核的功能—inotify(内核 ...

  3. linux服务之rsync

    http://www.cnblogs.com/itech/archive/2010/06/13/1757952.html rsync与mfs好像有点类似,都是传输块的chunk,chunk的 1)软件 ...

  4. 利用Inotify和Rsync将webproject文件自己主动同步到多台应用server

    背景:须要搭建一套跟线上一模一样的环境,用来预公布,这是当中的web分发的一个小模块的实现过程. 1 工具以及环境简单介绍 1.1,Inotify工具 Inotify,它是一个内核用于通知用户空间程序 ...

  5. inotify 与 rsync文件同步实现与问题

    首先分别介绍inotify 与 rsync的使用,然后用两者实现实时文件同步,最后说一下这样的系统存在什么样的问题. 1. inotify 这个具体使用网上很多,参考 inotify-tools 命令 ...

  6. inotify和rsync实现数据实时同步

    数据的实时同步 实现实时同步 要利用监控服务(inotify),监控同步数据服务器目录中信息的变化 发现目录中数据产生变化,就利用rsync服务推送到备份服务器上 实现实时同步的方法 ino ...

  7. Linux inotify功能及实现原理

    http://www.cnblogs.com/jiejnan/archive/2012/05/18/2507476.html 简介: 当需要对 Linux®文件系统进行高效率.细粒度.异步地监控时,可 ...

  8. Linux inotify功能及实现原理【转】

    转自:http://blog.csdn.net/myarrow/article/details/7096460 1. inotify主要功能 它是一个内核用于通知用户空间程序文件系统变化的机制. 众所 ...

  9. Linux VMware tools安装步骤

    Linux VMware tools安装步骤: 1.安装环境介绍 #虚拟机版本:VMware-workstation-full-10 #linux分发版本:CentOS-6.4-i386-LiveCD ...

  10. 如何在Linux下使用Rsync

    如何在Linux下使用Rsync 吐槽 昨天对scp进行总结之后看到最后有说到Rsync,俗语有云:好奇心害死猫.抱着学习的态度将Rsync给找了出来,然后进行了一些简单的学习.下面介绍一些个常用的命 ...

随机推荐

  1. 2016-2017-2 20155326实验二《Java面向对象程序设计》实验报告

    2016-2017-2 20155326实验二<Java面向对象程序设计>实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉 ...

  2. QOpenGLFunctions的相关的使用(1)

    QOpenGLFunctions的使用 1.  QOpenGLFunctions  说明  QOpenGLFunctions 类提供了跨平台的OpenGl ES2.0 API版本. OpenGL 2. ...

  3. hdu 2642 Stars 【二维树状数组】

    题目 题目大意:Yifenfei是一个浪漫的人,他喜欢数天上的星星.为了使问题变得更容易,我们假设天空是一个二维平面,上面的星星有时会亮,有时会发暗.最开始,没有明亮的星星在天空中,然后将给出一些信息 ...

  4. codeforces891a

    A. Pride time limit per test 2 seconds memory limit per test 256 megabytes input standard input outp ...

  5. 4.easyloader.js文件的作用

    1).easyloader.js文件用于加载指定模块,同时它也会加载指定模块所依赖的组件 2).不使用easyloader加载: 在easyui中有一个Parser解析器,它会解析class中的eas ...

  6. DDL和DML的区别

    DML(data Manipulation Language)数据库操纵语言: 使用范围:对数据库中的数据进行一些简单的操作,如IDUS(增删改查) DDL(Data Definiton Langua ...

  7. pycharm的基本使用

    1.设置注释字体的颜色,如下图 2.常用快捷键 Ctrl + Space 基本的代码完成(类.方法.属性) Ctrl + Alt + Space 类名完成 Ctrl + Shift + Enter 语 ...

  8. iOS图片按比例显示

    只需加这么一段代码,如下: imageView.contentMode = UIViewContentModeScaleAspectFit; imageView.autoresizesSubviews ...

  9. [Leet code 2]Two Sum

    1 题目 You are given two linked lists representing two non-negative numbers. The digits are stored in ...

  10. yum安装jdk如何配置JAVA_HOME

    安装Java环境 yum -y install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64 查看安装后的配置 java -ver ...