文档章节

备份(rsync xinetd inotify)的使用

d
 doudou___9958
发布于 2016/11/16 00:10
字数 1755
阅读 19
收藏 1

备份:
    全量备份
    增量备份
    差异备份

备份工具:
    cp
    scp
    tar
    gzip
    bzip2

    rsync:
        1.安装
            可以直接通过系统光盘源进行安装
            yum install rsync


        2.工作模式
            shell模式:就是执行指令,也叫本地模式
            远程shell模式,可以利用ssh协议作为数据传输的承载
            列表模式:仅仅列出源的内容 -nv
            服务器模式:rsync作为一个守护进程,可以接收客户端的数据传输请求,可以进行数据的获取和上载


            参数:
                -n:测试模式对于命令的执行效果不缺定一定要使用此参数进行测试之后,在运行
                -v:显示详细过程信息
                -r:递归
                -q:静默模式
                -c:checksum文件校验
                -a:归档,保留文件属性
                -p:保留权限
                -t:保留时间戳
                -l:保留符号链接
                -g:保留属组
                -o:保留属主
                -D:保留设备文件
                -e ssh:使用ssh歇息作承载数据传输
                -z:压缩传输数据
                --progress:显示进度
                --stats:显示状态

                --exclude --exclude="filename|dirname"
                          --exclude="*.txt"
                          排除此指定内容之外的文件或目录都同步过去
                --delete
                    保证源目录和目的目录里面内容的一致性,如果目的目录中自己多添加了会被删除

 


                rsync etc user@host:dst -rv
                rsync etc/ user@host:dst -rv
                以上两个指令执行的结果会不一样
                没有加上目录后面的斜线会同步目录本身过去
                加上目录后面的斜线之后会同步目录下面的所有文件或目录
                
                rsync服务器模式
                1.服务器:
                    rsync,xinetd
                2.新建一个配置文件/etc/rsync.conf
                一个全局配置
                uid=nobody
                gid=nobody
                use chroot=no
                max connections=5
                strict modes=yes
                pid file=/var/run/rsyncd.pid
                log=/var/log/rsyncd.log
                

                多个共享配置(目录)
                [data]
                path = /path/to/some_dir--------------->填写自己需要同步的目录
                ignore errors = yes
                read only = no ---->pull
                write only = no ---->push
                hosts allow=whilte list
                hosts deny = black list
                黑白名单都不出现使用默认规则,默认为允许
                只出现白名单,匹配白名单的允许,其他的使用默认规则
                只出现黑名单,匹配黑名单的不允许,其他的使用默认规则
                同时出现,匹配白允许,匹配黑不允许,其他使用默认规则
                list = false
                uid=root
                gid=root
                auth users = username
                secrets file = /etc/rsyncd.passwd

                3.密码文件 在/etc/rsyncd.passwd (新建)
                格式
                    username:password 明文

                4.客户端测试
                Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
                      rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
                Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
                      rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
                DST:指定的是rsyncd.conf中的[]中名字

 


                5.步凑
                    服务端
                        yum install rsync xinetd
                        vim /etc/xinetd.d/rsync
                        disable = no

                        编写rsync的配置文件
                        vim /etc/rsyncd.conf
                        uid=nobody
                        gid=nobody
                        use chroot=no
                        max connections=5
                        strict modes=yes
                        pid file=/var/run/rsyncd.pid
                        log=/var/log/rsyncd.log
                        [data]
                        path=/test
                        ignore errors=yes
                        read only=no
                        write only=no
                        hosts allow=172.16.10.1
                        #172.16.10.* 是错误
                        #172.16.10.0/24正确
                        hosts deny = *
                        list=false
                        uid=root
                        gid=root
                        auth users=tom
                        secrets file=/etc/rsyncd.passwd

                        密码文件
                        vim /etc/rsyncd.passwd
                        tom:123456

                        守护进程启动
                        /etc/init.d/xinetd restart
                        netstat -anutlp|grep 873
                        客户端测试
                         pull   rsync -avzRP user@host::sync_dir_name  /tmp/
                         push   rsync -avzRP /tmp user@host::sync_dir_name
                         不输入密码:rsync -avzRP --password-file=/path/to/rsync_passwd_file
                        注意密码和配置文件都设为chmod 600 ....
            总结:
                rsync -avzP  --delete /tmp/test tom@192.168.242.132::data 拷贝test目录过去
                rsync -avzP  --delete /tmp/test/ tom@192.168.242.132::data 老被test目录下的所有内容 不包含test目录本身
                rsync -avzRP  --delete /tmp/test tom@192.168.242.132::data 会保留tmp/test目录

            inotify-tools:
                是为linux下inotify文件监控工具提供的一套c接口的开发接口库函数,同时还提供一些列的命令行工具,这些工具可以用来监控文件系统的事件,只要求linux内核支持inotify,inotifywait监控文件或目录的变化,inotifywatch统计文件访问次数
                ls /proc/sys/fs/inotify
                安装inotify-tools
                下载
                解压inotify-tools-3.14.tar.gz
                tar -xvf inotify-tools-3.14.tar.gz
                cd inotify-tools-3.14
                ./configure --prefix=/usr
                make
                make install

                ln -s /usr/lib/libinotifytools.so.0    /usr/lib64/
                inotifywait
                -h:帮助
                @:排除不需要监视的文件或目录
                -fromfile:从文件中读取需要监视的文件,排除的文件以@开头
                -m:接收到一个事件而不退出,无限期执行,默认是接收到一个事件就退出
                -d:和-m一样,还需要指定-outfile也意味着使用-syslog
                -o:输出事件到一个文件
                -s:输出错误信息到系统日志
                -r:监控目录下所有子目录
                -q:指定一次不会输出详细信息,指定二次除了致命错误不会输出任何信息
                -exclude:正则匹配要排除的文件
                -excludei:正则匹配要排除的文件忽略大小写
                -t:设置超时时间,0表示无限期执行下去
                -e:指定监控事件
                -c:输出csv格式
                -timefmt:时间格式化可以使用-format中%T格式
                -format:
                    %w:表示发生事件的目录
                    %f:表示发生事件的文件
                    %e:表示发生的事件
                    %Xe:事件以X分割
                    %T:-timefmt定义的时间格式

                inotifywatch:
                -h
                @
                -v输出详细信息
                -fromfile
                -z:输出表格的列和行
                -exclude
                -excludei
                -r
                -t
                -e
                -a:指定事件以升序排列
                -d:降序排列
                可监听事件:
                    access
                    modify
                    attrib
                    close_nowrite
                    close
                    open
                    moved_to
                    moved_from
                    move
                    create
                    delete
                    
    要监控/tmp/test目录及其内部所有文件上发生的create,delete,modify,close_write事件,则使用如下命令
    inotifywait -rm --timefmt '%Y-%m-%d %H:%M' --format '%T %w %e %f' -e create,delete,modify,close_write /tmp/test
    inotifywatch -vzr -e create,delete,modify,close_write,access,attrib /tmp/test
    inotifywatch -vzr -t 60 -e create,delete,modify,close_write,access,attrib /tmp/test


实际生产备份选择方式:
        对于应用代码的备份:
            版本更新备:
            定期备:
        对于数据库备份(mysql):
            热备 逻辑 完全+增量
1.代码版本更新备
    更新之前应该先备份
        tar
        cp
        scp
        rsync
    还原:
        cp
        scp
        rsync
    备份脚本

通过inotify+rsync进行实时有触发条件的同步(热备) 

     服务前的准备:

需要备份到服务器端:多个共享配置(目录

        rsync  xinetd   配置文件里面需要配置全局配置和多个共享配置(目录)

需要将实时更新数据到备份服务器段:

        rsync   inotify  (不需要配置只需在/etc/rsync.passwd添加备份端服务器提供服务的用户密码即可)


      前提需要安装inotify-tools和rsync的服务器模式

        脚本
      #!/bin/bash
      #
      #
       
       inotifywait -rm --timefmt '%Y-%m-%d %H:%M' --format '%T %w  %f' -e     create,delete,modify,close_write,attrib /www|while read DATE TIME DIR FILE;do
      FILECHANGE=${DIR}${FILE}
      cd /www/
      rsync -avzRP --delete --progress --stats --password-file=/etc/rsyncd.passwd --exclude-from="/var/log/rule.txt"   * up14@192.168.1.110::data &
      echo "at ${TIME} on ${DATE} file $FILECHANGE was backup via rstnc" >> /var/log/rule.txt
      done

    为了让sh inotify.sh一直执行的方式
        supervisor推荐
        screen
        nohup


2.注意备份的时候是否需要打包压缩,是否需要本地异地都有备份,最好给备份文件加上一个标识以便还原的时候方便区分,根据实际情况考虑

 

© 著作权归作者所有

共有 人打赏支持
d
粉丝 4
博文 44
码字总数 54288
作品 0
成都
私信 提问
rsync + inotify 实现数据实时同步

要求:两台Web服务器实现数据同步(我这里使用的是Centos 6.2-x64) 服务器一:172.16.11.126 服务器二:172.16.11.127 一、配置ssh备份源172.16.11.126(这里推荐使用专用的普通用户,注意相应...

五大三粗
2014/12/20
0
0
rsync+inotify实现数据同步

操作系统:rhel 5.7 首先下载好两个工具: rsync地址: http://rsync.samba.org/download.html inotify-tools: http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.ta......

247337668
2014/03/12
0
1
CentOS7 Rsync服务搭建-Rsync+Inotify架构实现实时同步

一.rsync 概念 1.rsync rsync是类unix/linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。rsync是通过超级守护进...

Mr.zou
2018/08/16
0
0
rsync+inotify实现在Linux上文件实时同步

首先下载好两个工具: rsync地址: http://rsync.samba.org/download.html inotify-tools: http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz 这次的实验主要有......

翊骷
2014/09/18
0
0
Rsync+sersync实现数据实时同步

前言: 一、为什么要用Rsync+sersync架构? 1、sersync是基于Inotify开发的,类似于Inotify-tools的工具 2、sersync可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件...

张孝国
2018/06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

如何开发一款以太坊(安卓)钱包系列2 - 导入账号及账号管理

这是如何开发一款以太坊(安卓)钱包系列第2篇,如何导入账号。有时用户可能已经有一个账号,这篇文章接来介绍下,如何实现导入用户已经存在的账号。 导入账号预备知识 从用户需求上来讲,导...

Tiny熊
今天
2
0
intellJ IDEA搭建java+selenium自动化环境(maven,selenium,testng)

1.安装jdk1.8; 2.安装intellJ; 3.安装maven; 3.1 如果是单前用户,配置用户环境变量即可,如果是多用户,则需配置系统环境变量,变量名为MAVEN_HOME,赋值D:\Application\maven,往path中...

不最醉不龟归
今天
4
0
聊聊ShenandoahGC的Brooks Pointers

序 本文主要研究一下ShenandoahGC的Brooks Pointers Shenandoah Shenandoah面向low-pause-time的垃圾收集器,它的GC cycle主要有 Snapshot-at-the-beginning concurrent mark包括Init Mark(P......

go4it
昨天
4
0
Makefile通用编写规则

#简单实用的Makefile模板: objs := a.o b.o test:$(objs) gcc -o test $^ # .a.o.d .b.o.d dep_files := $(foreach f,$(objs),.$(f).d) dep_files := $(wildcard $(dep_files)) ifneq ($(d......

shzwork
昨天
3
0
《万历十五年》的读后感作文4000字

《万历十五年》的读后感作文4000字: 万历十五年,即1587年,距今已过去432年。在明朝276的历史中,这一年很平淡,并没有什么特别之处。黄仁宇的《万历十五年》一书,有别于其他的历史叙述方...

原创小博客
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部