inotify+rsync实现文件即使备份

    // Rsync + inotiry 实现即时同步数据 20140913
    [环境需求]
        1.linux 内核版本 > 2.6.13
        2.预先安装rsync , inotify是在rsync基础上运行
        3.可以查看 ls /proc/sys/fs/inotify/
                -rw-r--r-- 1 root root 0 Sep 14 00:00 max_queued_events // 时间队列 后期生产环境需要改大点
                -rw-r--r-- 1 root root 0 Sep 14 00:00 max_user_instances // 用户实例数 后期生产环境需要改大点
                -rw-r--r-- 1 root root 0 Sep 14 00:00 max_user_watches // 用户监听数 后期生产环境需要改大点

    [安装inotify]
        1.下载inotify.tgz软件包,解压 、编译、安装 // 软件包自行baidu . goole.com 搜索inotify-tools down
        2. 安装后在/usr/local/inotify-3.14/bin/[inotifywait/inotifywatch]
                inotifywait  [-hcmrq]  [-e  <event>  ]  [-t <seconds> ] [--format <fmt> ] [--timefmt <fmt> ]
       <file> [ ... ]
                    -h // help
                    -c // csv
                    -r // recursion 递归监听
                    -q // quit  安静模式
                    -e // 监听时间
                    -t // 超时时间
                    -format // terminal display format 终端显示样式

        3. 脚本实例(启动脚本,先确定rsync配置及启动[ps:]详解)

            [shell version 2]
                #!/bin/bash
                USER=luowen
                HOST=192.168.213.133
                PASSWD_FILE=/etc/rsyncd.secrets
                SRC_DIR=/www
                BACK_DIR=backup

                # inotify soft
                INOTIFY_BIN=‘/usr/local/inotify/bin‘

                if [ ! -e "$PASSWD_FILE" ] && [ ! -e "$SRC_DIR" ] && [ ! -e "$INOTIFY_BIN" ];
                    then
                        echo ‘CHECK CONFIGURE‘
                        exit 9;
                fi

                "$INOTIFY_BIN"/inotifywait -mrq --format=‘%f%w‘ --timefmt=‘%F %T‘ -e close_write,delete,attrib,create "$SRC_DIR" | while read file
                    do
                        # rsync
                        #echo $file
                        #`$RSYNC -avzP --delete --timeout=100 [email protected]$HOST::$BACK_DIR --password-file=${PASSWD_FILE}`  > /dev/null 2>&1
                        cd $SRC_DIR && rsync -avrzP --delete --timeout=100 $SRC_DIR [email protected]$HOST::$BACK_DIR --password-file=${PASSWD_FILE} > /dev/null 2>&1
                    done
                exit 0;

            #============================version 2======================
            #!/bin/sh

            HOST=192.168.1.100 # 备份及的ip地址
            SRC=/backup # 备份机的备份目录
            DST=www # 模块 与/etc/rsync.conf 的模块相对应
            USER=rsync-backup
            RSYNC_PASSFILE=/etc/rsync.password
            INOTIFY_HOME=/usr/local/initify/

            #judge
            if [ ! -e "$SRC" ]                [ ! -e "${RSYNC_PASSFILE}" ]                [ ! -e "${INOTIFY_HOME}/bin/inotifywait" ]                [ ! -e "/usr/bin/rsync" ];
            then
                echo "Check File And Folder"
                exit 9
            fi

            ${INOTIFY_HOME}/bin/inotifywait -mrq --timefmt ‘%F %T‘ --format ‘%T%w%f‘ -e close_write,delete,create,attrib $SRC  | while read file             do
                rsync -avzP --delete --timeout=100 --password-file=${RSYNC_PASSFILE} $SRC [email protected]$HOST::$DST > /dev/null 2>&1

                cd $SRC && rsync -aruz -R --delete ./ --timeout=100 --password-file=/etc/rsync [email protected]$HOST::$DST > /dev/null 2>&1

            done
            exit 0

            [ps:]
                rsync 命令模式:
                    1. rsync -avz -P --delete rsync://[email protected]:/backup-directory/ /tmp --password-file=/etc/rsync/password
                    2. rsync -avz -P --delete [email protected]:/directory /tmp --password-file=/etc/rsync/passwd

                    [rsync 服务器配置]
                        1. A服务器(B服务器上/www目录下的文件,备份到A服务器)
                            ip : 192.168.213.133
                            安装rsync
                                 1. [backup]
                                       comment = public archive
                                       path = /backup
                                       use chroot = no
                                       max connections=10
                                       lock file = /var/lock/rsyncd
                                       read only = false
                                       list = yes
                                       uid = rsync # 对应的/backup目录rsync用户具有读写权限
                                       gid = rsync # 对应的/backup目录rsync用户具有读写权限
                                       auth users = luowen # 备份用户名,可以随便填写不需要是系统上的用户 用户 sync命令中的 [email protected] 用户名
                                       secrets file = /etc/rsyncd.secrets # 存放用户认证用户名 格式为 上行的 luowen:password  // password 在B服务器上认证用
                                       hosts allow = 192.168.213.132 # 允许的机器ip地址 用于安全

                                2. 创建 /etc/rsyncd.secrets 文件 (umask 177; echo ‘luowen:password‘ > /etc/rsyncd.secrets) 文件权限必须是600,不然A服务器验证不通过
                                3. 启动rsync服务,以daemon运行 (A服务端必须启动rsync服务B服务端不需要启动rsync服务)
                                4. chown -R rysnc:rsync /backup

                        2. B服务器 (将/www的数据备份到A服务器/backup目录下)
                            1. ip 192.168.213.132
                                安装rsync
                            2. 创建密码文件
                                (umask 177; echo ‘password‘ > /etc/rsyncd.secrets) # 同样此文件必须是600 否则验证不通过 password为A服务端设置的密码

                            3. 测试下 rsync -avzP --delete /www [email protected]::backup

时间: 2024-10-07 01:31:28

inotify+rsync实现文件即使备份的相关文章

inotify+rsync、sersync 实时备份

作者:Georgekai 归档:学习笔记 2018/1/26 inotify+rsync.sersync 实时备份 1.1 定时备份缺点: 1. 浪费系统性能(数据没变化到时间也会备份) 2. 数据安全性不高(定时任务最短1分钟同步一次,如果1分钟内数据变化后,服务器宕机了,就 会丢失数据) 1.2 inotify+rsync 1.2.1 inotify是什么? 1. 是一种强大的,细粒度的,异步的文件系统事件监控系列 2. linux内核从2.6.13起,加入了inotify的支持 3. 作用

CentOS利用inotify+rsync实现文件同步

1.环境部署 inotify-master 10.10.6.208 inotify-slave 10.10.6.149 2.两台服务器都安装rsync yum install -y rsync 3.inotify-slave部署 新建rsync用户及模块目录并更改其用户组 useradd rsync -s /sbin/nologin #添加rsync用户mkdir /usr/local/backup #创建rsync daemon工作模式的模块目录chown rsync.rsync /usr/l

inotify+rsync+sersync实时数据备份

第1章 rsync备份服务 1.1 rsync软件介绍 rsync软件官方链接地址:http://www.samba.org/ftp/rsync/rsync.html 提示信息: man rsync查看客户端说明信息 man rsyncd.conf查看服务端配置 Rsync是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据同步备份的优秀工具 全量:将全部数据,进行传输覆盖 cp mv scp 增量:只传输差异部分的数据 rsync rstync适用于unix/linux/windo

采用 unison + inotify + rsync 实现文件触发式实时单向/双向/多向文件同步

项目有个新的需求,在多台APP服务器随机上传图片/资源文件,其中一台APP需要读取上传的图片,这样之前做的rsync+inotify的设置就无法应对了. 所以研究了下多向触发式实时同步机制,大家可以实验一下,如果有不妥的地方,请联系我修正,多谢了. 以下开始正题 一.     简介 Unison是Windows.Linux以及其他Unix平台下都可以使用的文件同步工具,它能使两个文件夹(本地或网络上的)保持内容的一致.Unison拥有与其它一些同步工具或文件系统的相同的特性,但也有自身的特点:

linux中部署rsync实现文件远程备份及同步

原文链接:https://blog.csdn.net/ljihe/article/details/52276889 常用指令参考:https://www.cnblogs.com/f-ck-need-u/p/7220009.html 原文地址:https://www.cnblogs.com/gavinyyb/p/9000462.html

NFS +inotify+rsync 实现数据的远程挂载与实时增量备份

NFS 网络文件系统 功能: 用户可以像访问自己的本地文件系统一样使用网络中的远端系统上的文件 原理: 用户进程-->RPC服务(portman)-->tcp/ip协议栈-->远端主机RPC服务 后 -->远端NFS服务-->远端主机本地磁盘数据-->NFS服务-->tcp/ip协议栈-->本地数据 优点: 易于实现前段服务器代理分流的时候处理sission以及数据查找时找不到数据等问题,且同时起到了就算任何一个web服务器宕机都不影响数据的访问 缺点: 单

inotify+rsync实现实时同步

引言:rsync实现数据备份,inotify监控文件系统提供通知功能,二者结合能够实现服务器之间文件的实时同步. rsync 特性: 可以镜像保存整个目录树和文件系统: 增量同步数据,文件传输效率高: 可以保持原有文件的权限.时间等属性: 加密传输数据,保证了数据的安全性: 支持断点续传: 可以使用rcp.ssh等方式传输文件,也可以通过socket连接传输文件: 支持匿名传输: rsync4种模式: 本地shell 远程shell 查询(列表)模式 服务器模式 本地shell模式: rsync

inotify+rsync+mysql主主复制+keepalived实现zabbix高可用

思路:主备机通过inotify+rsync实现文件同步,通过mysql主主复制实现数据同步,同一时刻只有一台服务器能对外提供zabbix服务,web端登陆虚ip访问,被监控主机通过配置虚ip来完成监控. 配置: 主机 ip 操作系统 zabbix版本 mysql版本 inotify版本 rsync版本 备注 zabbix-server01 172.27.9.80 Centos7.3.1611 zabbix_server (Zabbix) 3.4.10 5.7.22 3.14 3.1.2 关闭防火

lsyncd 代替inotify+rsync 配置

一.lsyncd介绍 二.lsyncd安装 三.lsyncd配置说明 四.lsyncd同步测试 1.lsyncd 介绍 Lsyncd 监视本地目录树事件监控器接口( inotify或fsevents ) .通过秒级事件聚合,然后生成一个(或多个)进程来同步变化.默认情况下为结合rsync. Lsyncd轻重量镜解决方案,安装不需要新的文件系统或块设备相对容易,并且不妨碍本地文件系统的性能. Lysncd 实际上是lua语言封装了 inotify 和 rsync 工具,采用了 Linux 内核(2