zoukankan      html  css  js  c++  java
  • linux rsync

    rsync

    1. 概念:Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。Rsync使用所谓的“Rsync算法”来使本地和远 程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。

    2. 作用:用于对两台主机的远程传输文件

    3. 好处(与scp的对比):scp用于远程复制,rsync用于远程备份,

    rsync使用

    1. rsync的配置
    vim etc/rsync.conf
    
    uid = root --rsync运行权限为root
    gid = root --rsync运行权限为root
    use chroot = no --是否让进程离开工作目录
    max connections = 5 --最大并发连接数,0为不限制
    timeout = 600 --超时时间
    pid file = /var/run/rsyncd.pid --指定rsync的pid存放路径
    lockfile = /var/run/rsyncd.lock --指定rsync的锁文件存放路径
    log file = /var/log/rsyncd.log --指定rsync的日志存放路径
    [web1] --模块名称
    path = /data/test/src --该模块存放文件的基础路径
    ignore errors = yes --忽略一些无关的I/O错误
    read only = no --客户端可以上传
    write only = no --客户端可以下载
    hosts allow = 192.168.22.12 --允许连接的客户端主机ip
    hosts deny = * --黑名单,*表示任何主机
    list = yes
    auth users = web --认证此模块的用户名
    secrets file = /etc/web.passwd --指定存放“用户名:密码”格式的文件
    
    1. rsync的连接使用
    rsync -avzP web@192.168.22.11::web1 /data/test/  #命令
    passwd:密码
    
    #此时/data/test/ 下会有a客户机的src文件
      
    
    1. rsync的密码同步

    rsync的密码文件在secrets file中

    # echo "123"> /tmp/rsync.password
    # chmod 600 /tmp/rsync.password
    # rsync -avzP --delete --password-file=/tmp/rsync.password  web@192.168.22.11::web1 /data/test/ --调用密码文件
    
    1. 客户端的自动同步
    # crontab -e
    10 0 * * * rsync -avzP --delete --password-file=/tmp/rsync.password   web@192.168.22.11::web1 /data/test/
    # crontab -l
    

    rsync+inotify-tools 实现数据同步``

    1. inotify-tools
    • 是为linux下 inotify文件监控工具提供的一套c的开发接口库函数,同时还提供了一系列的命令行工具,这些工具可以用来监控文件系统的事件
    • inotify-tools是用c编写的,除了要求内核支持 inotify 外,不依赖于其他
    • inotify-tools提供两种工具:一是inotifywait,它是用来监控文件或目录的变化,二是inotifywatch,它是用来统计文件系统访问的次数
    1. 安装
    1. 使用:总归另一个终端实现对监控文件的同步数据
    inotifywait -mrq /data -format "%w%f"  -e create,delete,move_to,close_write
    
    1. 编写脚本:
    [root@nfs01 sersync]# vim /server/scripts/inotify.sh
    #!/bin/bash
    inotifywait -mrq /data --format "%w%f" -e create,delete,moved_to,close_write|
    while read line
    do
            rsync -az --delete /var/www/html/ rsync_backup@192.168.200.19::nfsbackup --password-
    file=/etc/rsync.password
    done
    
    #for循环会定义一个条件,当不满足这个条件时,就会停止
    #which循环只要条件满足就会一直循环下去 
    
    • 脚本优化
    #!/bin/bash
    Path=/data
    backup_Server=172.16.1.41
    /usr/bin/inotifywait -mrq --format '%w%f' -e create,close_write,delete /data  | while read line  
    do
        if [ -f $line ];then
            rsync -az $line --delete rsync_backup@$backup_Server::nfsbackup --password-file=/etc/rsync.password
        else
            cd $Path &&
            rsync -az ./ --delete rsync_backup@$backup_Server::nfsbackup --password-file=/etc/rsync.password
        fi
    done
    
  • 相关阅读:
    Do You See Me? Ethical Considerations of the Homeless
    ELDER HOMELESSNESS WHY IS THIS AN ISSUE?
    Endoflife support is lacking for homeless people
    html内联框架
    html字体
    html块 div span
    html列表
    html表格
    SQL Server管理员专用连接的使用   作为一名DBA,经常会处理一些比较棘手的服务无响应问题,鉴于事态的严重性,多数DBA可能直接用“重启”大法,以便尽快的恢复生产环境的正常运转,但是多数情况
    如何配置最大工作线程数 (SQL Server Management Studio)
  • 原文地址:https://www.cnblogs.com/wml3030/p/15243805.html
Copyright © 2011-2022 走看看