zoukankan      html  css  js  c++  java
  • rsync+inotify 备份

    一,服务端安装(备份服务器):

    #安装rsync
    cd /usr/local/src/ 
    wget http://rsync.samba.org/ftp/rsync/src/rsync-3.0.9.tar.gz 
    tar zxvf rsync-3.0.9.tar.gz 
    cd rsync-3.0.9
    ./configure --prefix=/usr/local/rsync 
    make && make install
    
    #新建用户与密码认证文件
    echo "backup:backup" > /usr/local/rsync/rsyncd.passwd
    chmod 600 /usr/local/rsync/rsyncd.passwd
    
    #新建rsync配置文件
    cat > /usr/local/rsync/rsyncd.conf  <<EOF
    uid = root 
    gid = root 
    use chroot = no 
    max connections = 4 
    strict modes = yes 
    hosts allow = 192.168.1.101 #可以空格,允许多个 
    port = 873 
    pid file = /var/run/rsyncd.pid 
    lock file = /var/run/rsync.lock 
    log file = /var/log/rsyncd.log
    
    [test]
    #当前服务器要同步到此的目录(/home/jerome/test )
    path = /home/jerome 
    ignore errors
    read only = false
    list = false
    auth users = backup
    secrets file = /usr/local/rsync/rsyncd.passwd
    #PS:注意这里要将read only 修改为 false, 因为是要将文件同步到该模块的,必须可写
    
    EOF
    
    
    #以守护进程方式启动rsync服务器
    rsync --daemon --config=/usr/local/rsync/rsyncd.conf
    
    
    
    #我们可以把rsync脚本加入到开机启动项里
    echo "/usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/rsyncd.conf" >> /etc/rc.local

    二,检查rsync 是否正常启动:

    [root@localhost rsync]# netstat -tnlp | grep 873 
    tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      1474/rsync          
    tcp6       0      0 :::873                  :::*                    LISTEN      1474/rsync 

    三,客户端安装(源服务器)

    #安装rsync
    cd /usr/local/src/ wget http://rsync.samba.org/ftp/rsync/src/rsync-3.0.9.tar.gz tar zxvf rsync-3.0.9.tar.gz cd rsync-3.0.9 ./configure --prefix=/usr/local/rsync make && make install echo "backup" > /usr/local/rsync/rsync.passwd chmod 0600 /usr/local/rsync/rsync.passwd
    #安装inotify
    yum install inotify-tools -y

    四,同步脚本

    #!/bin/bash
    host=192.168.1.102 #server的ip(备份服务器)
    src=/home/test/ #server端要实时监控的目录(/home/test),des是认证的模块名,需要与client的des一致 
    des=test
    user=backup
    
    inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src | while read files  
    do 
      /usr/bin/rsync -vzrtopg --progress --password-file=/usr/local/rsync/rsync.passwd $src $user@$host::$des 
      echo "${files} was rsynced" >>/data/logs/rsync.log 2>&1 
    done

    运行:

    sh /usr/local/rsync/inotify_rsync.sh &
  • 相关阅读:
    MFC Bitmap::FromBITMAPINFO返回空问题
    String成员函数
    用xshell连接l自己的inux
    回调函数
    文件操作相关函数(POSIX 标准 open,read,write,lseek,close)
    Linux_GDB调试学习笔记
    程序中的一些限制(基于Linux系统C语言)
    第10课:[实战] Redis 网络通信模块源码分析(3)
    第09课:【实战】Redis网络通信模块源码分析(2)
    简单模拟多段线绘制Pline命令过程的撤销功能
  • 原文地址:https://www.cnblogs.com/xiao2er/p/10312930.html
Copyright © 2011-2022 走看看