zoukankan      html  css  js  c++  java
  • Linux-(inotify-tools&rsync)

    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 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
  • 相关阅读:
    有关 PHP 和 MySQL 时区的一点总结
    PHP CLI模式下的多进程应用
    Linux编程之:五个常见PHP数据库问题
    用php定制404错误页面 并发信通知管理员
    配置PHP站点安全综合教程
    新手必看的PHP学习入门的一些基础知识
    彻底杜绝PHP的session cookie错误
    专家预言:PHP将比Java更受开发人员欢迎
    PHP企业级应用之WebService续篇
    清除 数据库 日志 以 Db_Test 为例
  • 原文地址:https://www.cnblogs.com/wade-luffy/p/8734332.html
Copyright © 2011-2022 走看看