zoukankan      html  css  js  c++  java
  • inotify+rsync实时同步备份的部署流程

    inotify+rsync实现实时同步备份部署流程

    第一个里程:先安装inotify软件(在存储服务器上)

    [root@nfs01 ~]# yum -y install inotify-tools
    [root@nfs01 ~]# rpm -ql inotify-tools
    /usr/bin/inotifywait -->实现对数据目录信息变化监控
    /usr/bin/inotifywatch -->监控数据信息变化,对变化的数据进行统计
    

    第二个里程:部署rsync服务

    部署服务端:
    1.检查是否安装rsync服务
    rpm -qa |grep rsync
    
    2.编写主配置文件
    #全局配置,在全局生效
    uid = rsync -->指定rsync服务运行的时候,向磁盘读取和写入的操作者
    gid = rsync -->指定rsync服务运行的时候,向磁盘读取和写入的操作者
    use chroot = no -->进行数据同步存储时,安全相关参数,默认内网进行数据同步时,可以关闭
    max connections = 200 --> 定义向备份服务器进行数据存储的并发连接数
    timeout = 300 --> 定义与备份服务器建立的网络连接,在多长时间没有数据传输时,就释放连接
    pid file = /var/run/rsyncd.pid --> 服务程序运行时,会将进程的pid信息存储到一个指定的pid文件中
    lock file = /var/run/rsync.lock --> 定义锁文件,主要用于配合max connections 参数,当达到最大连接就禁止继续访问
    log file = /var/log/rsyncd.log --> 定义服务的日志文件保存路径信息
    ignore errors --> 在进行数据备份传输过程过程中,忽略一些I/O产生的传输错误
    read only = false --> 设置对备份的目录的具有读写权限,即将只读模式进行关闭
    list = false --> 确认是否可以将服务配置的模块信息,在客户端可以查看显示
    hosts allow = 172.16.1.0/24 --> 设置备份目录允许进行网络数据备份的主机地址或网段信息,即设置白名单
    hosts deny = 0.0.0.0/32 --> 设置备份目录禁止进行网络数据备份的主机地址或网段信息,即设置黑名单
    auth users = rsync_backup --> 指定访问备份数据目录的认证用户信息,为虚拟定义的用户,不需要进行创建
    secrets file = /etc/rsync.password --> 设置访问备份数据目录进行认证用户的密码文件信息,会在文件中设置认证用户密码信息
    #局部配置,只在模块内生效
    [backup] --> 指定备份目录的模块名称信息
    comment = "backup dir by oldboy" --> 模块说明信息
    path = /backup --> 指定数据进行备份的目录信息
    
    3.创建备份管理用户
    useradd -M -s /sbin/nologin rsync
    
    4.创建备份目录,并将所属主与所属组改成rsync用户
    mkdir /backup
    chown rsync. /backup
    
    5.创建用户认证文件,编写认证用户和密码信息,设置文件权限为600
    echo 'rsync_backup:123' >> /etc/rsync.password
    chmod 600 /etc/rsync.password
    
    6.启动rsync守护进程服务
    rsync --daemon
    
    部署客户端:
    1.检查是否安装rsync服务
    rpm -qa |grep rsync
    
    2.创建认证文件,编写认证用户密码,设置文件权限为600
    echo '123' >> /etc/rsync.password
    chmod 600 /etc/rsync.password
    
    3.利用客户端进行数据同步测试
    [root@nfs01 /]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::back
    up --password-file=/etc/rsync.password sending incremental file list
    hosts
    

    第三个里程:让inotify与rsync服务建立连接,使用shell脚本

    [root@nfs01 ~]# cat /server/scripts/inotify.sh 
    #!/bin/bash
    #监控/data目录的数据变化
    inotifywait -mrq  --format "%w%f" -e create,delete,moved_to,close_write /data|
    #使用死循环进行读取
    while read line
    do
    #使用无差异备份将变化的数据推送到备份服务器
    rsync -avz --delete /data/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
    done
    

    第四个里程:测试脚本运行结果

    #存储服务器
    [root@nfs01 scripts]# sh  inotify.sh &   #&表示在后台运行
    [1] 8051
    [root@nfs01 data]# touch {1..100}.txt
    [root@nfs01 data]# ls|wc -l
    100
    [root@nfs01 data]# 
    #备份服务器
    [root@backup backup]# ls|wc -l
    100
    
  • 相关阅读:
    WP7开发学习(3):在WP7中使用WCF+log4net 打印并输出日志文件(附源码)
    MongoDB开发学习(2)索引的基本操作
    C#批量添加水印
    获取某一时间戳的月份的开始时间戳和结束时间戳
    php判断一个字符串是否为日期格式
    正则表达式匹配括号引号内容
    PHP获取今日汽油价格接口
    ThinkPHP5 在Nginx环境下开启伪静态
    PHP格式化打印:JSON字符串|对象|数组
    php header ContentType出错
  • 原文地址:https://www.cnblogs.com/yjiu1990/p/10508711.html
Copyright © 2011-2022 走看看