• rsync+inotify-tools实时备份脚本


    1.1 实时备份

    1.需求分析:

    为什么要实时复制

    因为nfs是单点非常的不安全  而通过定时任务备份会造成数据丢失 这是就需要需要实时备份

    2实时方案

    1).搭建好服务端backup与客户端nfs的rsync服务,使可以备份数据

    a.服务端backup配置文件:

    [root@rsync-backup ~]# cat /etc/rsyncd.conf

    pid file = /var/run/rsyncd.pid

    lock file = /var/run/rsync.lock

    log file = /var/log/rsyncd.log

    uid = rsync

    gid = rsync

    use chroot = no

    max connections = 200

    timeout = 300

    ignore errors

    read only = false

    list = false

    hosts allow = 172.16.1.0/24

    hosts deny = 0.0.0.0/32

    secrets file = /etc/rsync.password

     

    [backup]

    path = /rsync_backup

    auth users = rsync_backup

    创建校验文件 并将权限改为600

    [root@rsync-backup ~]# cat /etc/rsync.password

    rsync_backup:ms

    创建用户 rsync 创建目录/ rsync_backup 并将属主属组改为rsync

    b.客户端nfs

    创建校验文件 并将权限改为600

    [root@nfs01 /backup]# cat /etc/rsync.password

    ms

    创建要备份的目录/backup

    2.)在nfs上搭好inotify-tools 使其可以监控事件

    上文已将其安装,这里测试命令

    端口1监控

    [root@nfs01 /backup]# inotifywait --format '%w%f'  -rmqe create,delete,close_write   /backup/

    /backup/a.txt

    端口2测试

    [root@nfs01 /backup]# rm -f a.txt

    3)编写脚本 使当所监控的文件夹有事件发生时 立即备份

    #!/bin/bash

     

    inotifywait --format '%w%f'  -rmqe create,delete,close_write   /backup/|

    while read line

    do

        rsync -az /backup/ rsync_backup@backup::backup --password-file=/etc/rsync.password

     

    done

    检测有效

    4)脚本的优化

    #!/bin/bash

     

    inotifywait --format '%w%f'  -rmqe create,delete,close_write   /backup/|

    while read line

    do

        if [ -e  $line  ];then

            rsync -az $line rsync_backup@backup::backup --password-file=/etc/rsync.password

        fi

            cd /backup/ && rsync -az /backup/ --delete  rsync_backup@backup::backup --password-file=/etc/rsync.password

    done

    if 判断如果文件存在 将新创建的文件备份到backup服务器上

    如果不存在 无差异备份一下

    额外补充

           watch ls /rsync_backup/ 每个2秒执行一下ls命令

           将脚本放入后台执行[root@nfs01 /server/scripts]# sh  nfs-backup.sh &

    [1] 9137

  • 相关阅读:
    poj 1698 二分图多重匹配
    poj 3207 2-sat
    hdu4932 Miaomiao's Geometry
    hdu4924 Football Manager
    hdu4914 Linear recursive sequence
    hdoj4906 Our happy ending(2014 Multi-University Training Contest 4)
    poj1987 Distance Statistics
    poj3342 Party at Hali-Bula
    C/C++ 调用qsort/sort 对字符数组排序的cmp函数写法
    poj1947 Rebuilding Roads
  • 原文地址:https://www.cnblogs.com/koushuige/p/9173985.html
Copyright © 2020-2023  润新知