centos7基于rsync+inotify 实现定时备份

    技术2023-08-20  109

    文章目录

    环境:rsync简介一、rsync 概述二、命令及其简单实用三、实际操作之本地复制,直接yum下载四、实际操作之跨主机操作(下载、上传)1)下载2)上传 innotify+rsync实现数据的实时同步一、概述二、上传包、解压、编译安装三、基本功法四、基本用法之监控一个目录实时同步

    环境:

    centos 7

    服务端:192.168.59.3

    客户端:192.168.59.4

    防火墙,selinux,关闭

    rsync简介

    一、rsync 概述

    1)远程同步工具,数据备份

    2)本地复制,或者与其他ssh,rsync进行同步

    3)官网 http://rsync.samba.org

    二、命令及其简单实用

    rsync 【选项】 源文件 目标目录

    复制:完全拷贝源文件到目标文件

    同步:增量拷贝,只传输变化过的数据

    选项:

    ​ -n 做测试同步,不能做实际修改

    ​ -delete 删除目标文件夹内多余的文件

    ​ -a 归档

    ​ -v 显示详细操作信息

    ​ -z 传输过程中启用压缩、解压

    三、实际操作之本地复制,直接yum下载

    [root@192 ~]# mkdir /leyu [root@192 ~]# rsync -a /etc/ /leyu/ [root@192 ~]# cd /leyu/ [root@192 leyu]# ls adjtime ethertypes ld.so.conf polkit-1 shells aliases exports ld.so.conf.d popt.d

    四、实际操作之跨主机操作(下载、上传)

    1)下载

    [root@192 ~]# rsync -az root@192.168.59.4:/leyu/ /leyu/ The authenticity of host '192.168.59.4 (192.168.59.4)' can't be established. ECDSA key fingerprint is SHA256:HVkgWmJm5O7fiaO87C2ehxYAAi6r7NNKPtM3RNjkLhU. ECDSA key fingerprint is MD5:58:3a:68:27:1f:29:e5:22:1e:d2:12:ec:ef:3d:f5:fb. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.59.4' (ECDSA) to the list of known hosts. root@192.168.59.4's password: [root@192 ~]# cd /leyu/ [root@192 leyu]# ls etc

    2)上传

    [root@192 ~]# rsync -az /leyu/feng/ root@192.168.59.4:/leyu/ root@192.168.59.4's password:

    innotify+rsync实现数据的实时同步

    一、概述

    比如服务器在北京,我们的客户在广东,如果中间没有cdn,客户就需要直接访问北京的服务器,但是我们怎样把主服务器的数据同步到中间的cdn的服务器,这个时候就需要用到innotify+rsync实现数据的实时同步。

    二、上传包、解压、编译安装

    [root@192 ~]# ls anaconda-ks.cfg inotify-tools-3.13.tar.gz rsync-3.1.2 rsync-3.1.2.tar.gz rsync.rar [root@192 ~]# yum -y install gcc gcc-c++ [root@192 ~]# cd inotify-tools-3.13 [root@192 inotify-tools-3.13]# ./configure [root@192 inotify-tools-3.13]# make & make install #或者通过yum安装

    默认安装在/usr/local/bin目录,一共两个程序 inotifywait和inotifywatch

    这样就算安装成功了。 inotiry的简单使用介绍,这个工具一般用来监控文件目录的变动,新建修改删除,属性变动等,inotify能够接受到相关信息,并进行日志输出,可以配合rsync做到服务器文件实时同步。

    三、基本功法

    首先先附上一张参数解释表

    https://img-blog.csdnimg.cn/20190611111527254.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1YW5nYmFva2FuZw==,size_16,color_FFFFFF,t_70

    inotifywait [选项] 目标文件

    -m 持续监控 (捕捉到一个事件后不退出)

    -r 递归监控、(包括目录下的子文件)

    -q 屏蔽屏幕输出

    -e 指定监控类别 midity、move、create、delete、attrib

    四、基本用法之监控一个目录

    [root@192 inotify-tools-3.14]# /usr/local/bin/inotifywait /opt/ Setting up watches. Watches established. /opt/ OPEN,ISDIR

    新建一个窗口,做一些操作

    [root@192 ~]# cd /opt/ [root@192 opt]# ls [root@192 opt]#

    原窗口

    [root@192 inotify-tools-3.14]# /usr/local/bin/inotifywait /opt/ Setting up watches. Watches established. /opt/ OPEN,ISDIR [root@192 inotify-tools-3.14]#

    此时你会发现不监控 只坚持了一步 这也太次了 这时候你在命令时候加一个m的参数就能够实现实时的一个监控了

    [root@192 inotify-tools-3.14]# /usr/local/bin/inotifywait -m /opt/ Setting up watches. Watches established.

    新窗口进入/opt/ 下进行文件的修改

    [root@192 ~]# cd /opt/ [root@192 opt]# ls [root@192 opt]# mkdir 1 [root@192 opt]# mkdir 2 [root@192 opt]# ls 1 2

    此时再返回到原来的窗口就会发现没有 只监控一步就退出 而是做了持久的监控

    [root@192 inotify-tools-3.14]# /usr/local/bin/inotifywait -m /opt/ Setting up watches. Watches established. /opt/ CREATE,ISDIR 1 /opt/ CREATE,ISDIR 2

    实时同步

    本地服务器:192.168.59.3 web

    远程服务器:192.168.59.4 web

    [root@192 ~]# inotifywait -mrq /var/www/html/ [root@192 ~]# rsync -az /var/www/html/ root@192.168.59.4:/var/www/html/^C

    结合脚本实现

    [root@192 ~]# cat 1.sh #!/bin/bash aa="inotifywait -mrq /var/www/html/" bb="rsync -az /var/www/html/ root@192.168.59.4:/var/www/html/" while true do $aa & $bb done & [root@192 ~]# cat 1.sh #!/bin/bash aa="inotifywait -mrq /var/www/html/" bb="rsync -az /var/www/html/ root@192.168.59.4:/var/www/html/" while true do $aa & $bb done &

    最后实现实时同步 当你在本地的/var/www/html 中建立文件 在远程服务器中会有实时的备份。

    Processed: 0.010, SQL: 9