• 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

  • 相关阅读:
    'NODE_ENV' 不是内部或外部命令,也不是可运行的程序 或批处理文件
    DOM property 和HTML attribute 的区别详解
    python语言和R语言实现机器学习算法
    特征工程二
    特征工程(一)
    梯度提升树GBD
    一种新型的聚类算法
    pcA降维 SVD
    xgboost原理
    互联网广告之工程点击率特征工程
  • 原文地址:https://www.cnblogs.com/koushuige/p/9173985.html
Copyright © 2020-2023  润新知