zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    linux查看存储盘
    aix中hd5对应什么设备?
    (转)Python 操作 Windows 粘贴板
    eclipse非主窗口的停靠(正常), 恢复, 最小化, 最大化的切换
    (转)HTML5 本地数据库(SQLite) 示例
    [译] 如何像 Python 高手一样编程?
    scrapy递归下载网站
    eclipse快捷键以及使用技巧大全
    python任意编码转utf8或者unicode
    apache快速配置简易网站
  • 原文地址:https://www.cnblogs.com/koushuige/p/9173985.html
Copyright © 2011-2022 走看看