欢迎访问昆山宝鼎软件有限公司网站! 设为首页 | 网站地图 | XML | RSS订阅 | 宝鼎邮箱 | 后台管理


新闻资讯

MENU

软件开发知识

它的具有以下几个特点使得它 图纸加密 很适合用作做备份的工具: 增量备份

点击: 次  来源:宝鼎软件 时间:2018-04-07

原文出处: 暗无天日

利用inotifywait监控文件变换

inotifywait是 inotify-tools 包中提供的一个东西,它利用 inotify API 来监控文件/目次中的变换环境。

在archlinux上,我们可以利用下面呼吁来安装

sudo pacman -S --noconfirm inotify-tools

平时 inotifywait 会挂起在哪里,直到文件/目次产生了要引起存眷的事件后,它会退出并输失事件产生的场合、事件的名称以及引起事件的文件(当事件产生在目次上时才会输出).

inotifywait 最常用的选项有两个,一个是 -r 一个是 -e ,个中:

-r
暗示递归监控子目次中文件产生的事件
-e
指定要监控的事件列表。对付备份系统来说,只需要监控 modify、create和delete三种事件就行了。

好比,我们运行

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

暗示监控 /tmp 目次及其子目次中文件修改、文件建设和文件删除三种事件。

这时措施一直在挂起状态

[lujun9972@X61 ~]$ inotifywait -r -e modify,create,delete /tmp
Setting up watches.  Beware: since -r was given, this may take a while!
Watches established.

这时在 /tmp 目次下新建一个文件

touch /tmp/newFile

则 inotifywait 历程退出,并输出如下信息

/tmp/ CREATE newFile

利用rsync同步变换

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

  • 增量备份,只会传输修悔改的内容
  • 可以在传输进程中及时解压缩,淘汰带宽耗损
  • 可以保持本来文件的权限、事件、软硬链接
  • 即支持本机复制,昆山软件公司,也支持长途复制
  • rsync常用法为:

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

    个中

    -a
    暗示archive mode,即备份目次下的所有内容(包罗子目次中的内容),而且保持软链接、文件属性、文件修改事件、文件的所有者和宿主信息稳定,而且同步字符/块设备以及定名socket和fifo等非凡文件。
    -v
    暗示输出备份的具体信息
    -z
    暗示传输时举办压缩
    –delete
    删除备份目标地里src中没有的文件
    src/
    暗示要备份的是src目次下的所有内容,留意这里最后的 / 不能去掉,不然会把src目次自己备份已往
    foo:/data
    暗示备份的目标地是foo主机下的 /data/ 目次

    整合起来

    接下来我们只需要用个 while 死轮回把两个东西整合起来就行了,昆山软件开发,昆山软件开发,很是简朴

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

    这里有须要说明的是,固然用 inotifywait 能探测出文件详细做了什么窜改,但实际上我们基础不需要知道详细的改变是什么。

    我们只需要知道有所改变了,然后详细改变了什么由 rsync 来本身处理惩罚就行了。