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
    
  • 相关阅读:
    ZeptoLab Code Rush 2015
    UVa 10048 Audiophobia【Floyd】
    POJ 1847 Tram【Floyd】
    UVa 247 Calling Circles【传递闭包】
    UVa 1395 Slim Span【最小生成树】
    HDU 4006 The kth great number【优先队列】
    UVa 674 Coin Change【记忆化搜索】
    UVa 10285 Longest Run on a Snowboard【记忆化搜索】
    【NOIP2016提高A组模拟9.28】求导
    【NOIP2012模拟10.9】电费结算
  • 原文地址:https://www.cnblogs.com/yjiu1990/p/10508711.html
Copyright © 2011-2022 走看看