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 &
  • 相关阅读:
    fullCalendar改造计划之带农历节气节假日的万年历(转)
    Linked List Cycle
    Remove Nth Node From End of List
    Binary Tree Inorder Traversal
    Unique Binary Search Trees
    Binary Tree Level Order Traversal
    Binary Tree Level Order Traversal II
    Plus One
    Remove Duplicates from Sorted List
    Merge Two Sorted Lists
  • 原文地址:https://www.cnblogs.com/xiao2er/p/10312930.html
Copyright © 2011-2022 走看看