zoukankan      html  css  js  c++  java
  • 实战-rsync+inotify打造文件实时备份

    1.rsync使用概述

    介绍:一款快速增量备份工具,支持远程同步 支持本地复制 或者与其他SSH主机同步
    软件作用:数据备份
    软件安装:yum -y install rsync
    优点:
    第一次同步是会复制全部内容,但下次只传输修改过的文件。支持增量备份。
    选择性的保持:符号链接,硬链接,文件属性,权限及时间等
    传输前执行压缩:适用于异地备份,镜像服务器等应用。

    rsync命令的基本用法:
    格式:rsync 选项 源文件 目标文件
    常见选项:
    	-a 	--archive(存档)	归档模式表示以递归的方式传输文件,并保持文件属性
    	-r 	--recursive 对子目录以递归的形式处理
    	-l  --links 表示拷贝链接文件
    	-p 	--perms 表示保持文件原有权限
    	-t 	--times 表示保持文件原有时间
    	-g 	--group 表示保持文件原有用户组
    	-o 	--owner 表示保持文件原有属主
    	-D 	--devices 表示块设备文件信息
    	-z  --表示压缩传输
    	-H  表示硬链接文件
    	-A  保留ACL属性信息
    	-P  显示传输进度
    	--delete 删除那些目标位置有而原始位置没有的文件
    
    实战:将服务器A上的/boot 备份至服务器B(192.168.2.45)上的/root/boot_bak
    		注:请使用yum进行安装rsync
    		命令:rsync -azP --delete /root/boot/ root@192.168.2.45:/root/boot_bak
    可通过配置ssh主机互信进行免密传输:
    可通过配置主机互信进行免密传输:
        ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
        ssh-copy-id root@192.168.2.45
    

    2.inotify介绍

    下载:https://sourceforge.net/projects/inotify-tools/
    安装:
        1.需要安装gcc包:yum -y install gcc
        2.tar -xvf inotify-tools-3.13.tar.gz
        3.cd /root/inotify-tools-3.13
        4../configure && make && make install
        5.检验安装是否成功:inotifywait -h 查看输出情况
        inotifywait 常用参数:
            -e 用来指定要监控哪些事件
                这些时间包括:create 创建;move 移动;delete 删除;modify 修改文件内容;attrib 属性修改。
            -m 表示持续监控
            -r 表示递归整个目录
            -q 表示简化输出信息
        使用示例:inotifywait -mrq -e create,move,delete,modify /var/www/html/
    

    3.使用rsync+inotify打造实时备份

    1.脚本示例

     #!/bin/bash
    #The Author is by xxxx
    #This Script is use rsync+inotify backup file
    #使用此脚本需在主机安装rsync+intify、备机安装rsync、并配置主机互信
    
    #定义变量
    srcDir="/root/boot/"
    destDir="/root/boot_bak/"
    destIp="192.168.2.45"
    destUser="root"
    #执行命令
    inotifywait -mrq -e create,move,delete,modify $srcDir | while read a b c
    do 
    rsync -azP --delete $srcDir $destUser@$destIp:$destDir
    done
    
    

    2.开机自启动

    编辑:/etc/rc.d/rc.local 
    最后一行添加:bash + /root/rsync-inotify.sh > /dev/null 2>&1 &
    
    注:centos7环境下,/etc/rc.d/rc.local文件的权限被降低了,需要添加执行权限:chmod +x /etc/rc.d/rc.local
    

    至此,rsync+inotify打造实时同步完毕。

  • 相关阅读:
    storm学习
    java高级——反射
    [Error]使用了未经检查或不安全的操作...
    将训练集构建成ImageNet模型
    跨域以及一些解决方法
    javascript中的内存管理和垃圾回收
    酷炫的SVG 动态图标
    前端经常遇到的的问题小结
    CSS3 Flex 布局教程
    DNS预解析prefetch
  • 原文地址:https://www.cnblogs.com/sdhzdtwhm/p/8042464.html
Copyright © 2011-2022 走看看