zoukankan      html  css  js  c++  java
  • 二、rsync文件同步

    网络文件共享部署

    1. 安装 epel 库

    yum upgrade -y  
    yum -y install epel-release
    

    2. 配置防火墙

    firewall-cmd --add-service=nfs --permanent --zone=public
    firewall-cmd --add-service=mountd --permanent --zone=public
    firewall-cmd --add-service=rpc-bind --permanent --zone=public
    firewall-cmd --reload
    

    生产环境应该使用更严格的方式

    3. 安装 nfs-server

    yum -y install nfs-utils rpcbind
    systemctl enable rpcbind nfs-server nfs-lock nfs-idmap
    systemctl start rpcbind nfs-server nfs-lock nfs-idmap
    

    4. 创建 NFS 共享目录

    mkdir /data
    

    此共享目录存放 jumpserver 的录像及任务结果

    5. 设置 NFS 访问权限

    vi /etc/exports
    /data 192.168.100.*(rw,sync,no_root_squash)
    

    /data 是刚才创建的将被共享的目录, 192.168.100.* 表示整个 192.168.100.* 的资产都有括号里面的权限
    也可以写具体的授权对象 /data 192.168.100.30(rw,sync,no_root_squash) 192.168.100.31(rw,sync,no_root_squash)

    6. 使 exports 生效

    exportfs -a
    

    sersync+rsync实现服务器文件实时同步

    架构:

    IP 服务
    192.168.130.13 rsync-server
    192.168.130.11 rsync-client sersync
    192.168.130.12 NFS

    部署rsync

    server端:130.13

    1、安装rsync

    yum install rsync -y
    

    2、配置rsyncd.conf

    vim /etc/rsyncd.conf
    
    [root@vm13 backup]# cat /etc/rsyncd.conf
    uid = www
    gid = www
    port = 873
    fake super = yes
    use chroot = no
    max connections = 2000
    timeout = 600
    ignore errors
    read only = false
    list = false
    pid file =/var/run/rsyncd.pid           # 指定rsync的pid目录
    lock file =/var/run/rsync.lock          # 指定rsync的锁文件【重要】
    log file = /var/log/rsyncd.log
    auth users = rsync_backup
    secrets file = /etc/rsync.password
    log file = /var/log/rsyncd.log
    hosts allow = 192.168.130.0/24               #允许进行数据同步的客户端IP地址,可以设置多个,用英文状态下逗号隔开
    hosts deny = 0.0.0.0/32                 #禁止数据同步的客户端IP地址,可以设置多个,用英文状态下逗号隔开
    #####################################
    [www]
    path = /backup
    [bbs]
    path = /data
    
    

    3、建立对应密码文件

    echo "rsync_backup:123456" > /etc/rsync.password
    chmod 600 /etc/rsync.password 
    

    4、创建对应的目录并授权

    [root@vm13 ~]# groupadd -g 666 www
    [root@vm13 ~]# useradd -u 666 -g www www
    [root@vm13 ~]# mkdir -p /{backup,data}
    [root@vm13 ~]# chown -R www.www /{backup,data}
    

    5、启动服务

    systemctl enable rsyncd
    systemctl start rsyncd
    

    client端:130.11

    6、安装rsync

    方法同上

    yum install rsync -y
    

    7、配置rsync客户端相关权限认证

    echo "123456">/etc/rsync.password
     chmod 600 /etc/rsync.password 
    

    8、创建待同步数据,在客户端创建一些数据

    mkdir -p /data/{www,bbs}
    touch /data/www/www.log /data/bbs/bbs.log
    cd /data/www && touch {1..3}.txt
    

    9、测试rsync是否同步

    [root@vm11 www]# rsync  -avzP /data/www/ rsync_backup@192.168.130.13::www/   --password-file=/etc/rsync.password
    sending incremental file list
    #/data/www/表示本地需要同步的数据目录  rsync_backup@192.168.130.13::www表示服务端的指定名称的模块下  本条命令执行的操作为:将第一个路径参数下的文件同步到第二个路径参数下  即:推模式 调换路径则为:拉模式
    ./
    1.txt
                  0 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=4/6)
    2.txt
                  0 100%    0.00kB/s    0:00:00 (xfr#2, to-chk=3/6)
    3.txt
                  0 100%    0.00kB/s    0:00:00 (xfr#3, to-chk=2/6)
    4.txt
                  0 100%    0.00kB/s    0:00:00 (xfr#4, to-chk=1/6)
    www.log
                  0 100%    0.00kB/s    0:00:00 (xfr#5, to-chk=0/6)
    
    

    10、Rsync的三种工作模式

    1)本地的拷贝和删除

    rsync avzP /etc/hosts /tmp  
    # 将文件hosts拷贝到/tmp目录中。与cp命令相似,但区别在rsync可以自己比较两个文件,实现增量备份
    
     rsync avz --delete /tmp/ /opt/ 
     /tmp/目录为空,加上 --delete参数,相当于 rm 命令
    --delete可以理解为:本地有远端有,本地没有删除远端有的,作为保持两目录文件一致,
    

    2)通过ssh同步数据

    这种方式有两种同步, 推送和拉取

    (推送)

     rsync avzP e 'ssh p 22' /data root@192.168.87.138:/tmp/data
     把本地的 /data/ 目录中的文件复制到192.168.87.138的 /tmpdata目录下,通过22端口
    

    (拉取)

    rsync avzP e 'ssh p 22' root@192.168.87.138:/data/ /tmp/data
    把192.168.87.138的 /data 目录文件复制到本地的 /tmp/data 目录中
    

    3)daemon,即为上面我们配置详细通过rsync用户同步方式

    ···

    2.部署sersync

    1、安装serync

    cd /opt
    wget https://raw.githubusercontent.com/wsgzao/sersync/master/sersync2.5.4_64bit_binary_stable_final.tar.gz
    tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz
    mv GNU-Linux-x86/ /usr/local/sersync
    

    2、修改serync配置

    cd /usr/local/sersync/
    cp confxml.xml confxml.bak
    vim confxml.xml
    
    修改24--28行
     24         <localpath watch="/opt/tongbu">
     25             <remote ip="127.0.0.1" name="tongbu1"/>
     26             <!--<remote ip="192.168.8.39" name="tongbu"/>-->
     27             <!--<remote ip="192.168.8.40" name="tongbu"/>-->
     28         </localpath>
    修改后的内容为:
    24         <localpath watch="/data/www">
    25             <remote ip="1192.168.130.13" name="www"/>
    26         </localpath>
    
    修改29--35行,认证部分(rsync密码认证)
    29         <rsync>
    30             <commonParams params="-artuz"/>
    31             <auth start="false" users="root" passwordfile="/etc/rsync.pas"/>
    32             <userDefinedPort start="false" port="874"/><!-- port=874 -->
    33             <timeout start="false" time="100"/><!-- timeout=100 -->
    34             <ssh start="false"/>
    35         </rsync>
    
    修改后的内容如下:
    27         <rsync>
    28             <commonParams params="-artuz"/>
    29             <auth start="true" users="rsync_backup" passwordfile="/etc/rsync.password"/>
    30             <userDefinedPort start="false" port="874"/><!-- port=874 -->
    31             <timeout start="true" time="100"/><!-- timeout=100 -->
    32             <ssh start="false"/>
    33         </rsync>
    

    3、开启守护进程同步数据

    /usr/local/sersync/sersync2  -dro /usr/local/sersync/confxml.xml
    配置sersync环境变量
    echo"PATH=$PATH:/usr/local/sersync/">>/etc/profile
    source /etc/profile
    

    4、启动后返回正常结果如下

    /usr/local/sersync/sersync2  -dro /usr/local/sersync/confxml.xml
    

    参数介绍:

    参数介绍:
    
    -a    归档模式,表示以归档方式传输文件,并保持所有文件属性
    
    -v    详细模式输出
    
    -z     对备份的文件在传输时进行压缩处理
    
    --delete    无差异同步
    

    5、验证

    客户端:

    cd /data/www
    touch {36..43}.txt
    

    服务端:

    多实例情况部署

    1、配置多个confxml.xml文件(比如:www、bbs、blog....等等)
        confxml-bbs.xml  confxml-blog.xml  confxml-www.xml(按照单个实例配置即可)
    2、根据不同的需求同步对应的实例文件
        rsync -avzP /data/www/ rsync_backup@10.1.20.109::www/   --password-file=/etc/rsync.password
        rsync -avzP /data/bbs/ rsync_backup@10.1.20.109::bbs/   --password-file=/etc/rsync.password
        rsync -avzP /data/test/ rsync_backup@10.1.20.109::blog/   --password-file=/etc/rsync.password
    3、分别启动即可
    

    6、添加脚本监控sersync是否正常运行

    #!/bin/sh
    sersync="/usr/local/sersync/sersync2"
    confxml="/usr/local/sersync/confxml.xml"
    status=$(ps aux |grep 'sersync2'|grep -v 'grep'|wc -l)
    if [ $status -eq 0 ];
    then
    $sersync -d -r -o $confxml &
    else
    exit 0;
    fi
      chmod +x /usr/local/sersync/check_sersync.sh  #添加脚本执行权限  
    

    把这个脚本加到任务计划,定期执行检测

    crontab -e 
    
    */30 * * * * *  /usr/local/sersync/check_sersync.sh
    

    rsync缺点:

    1.大量小文件同步时,比对时间长,有时候rsync进程会停止

    2.同步大文件,10G这样的大文件有时也会有问题,会中断。未完整同步之前是隐藏文件,可通过参数续传

    三、实现nfs+rsync同步

    架构:

    IP 服务
    192.168.130.13 rsync-server
    192.168.130.11 rsync-client sersync nfs-server
    192.168.130.12 nfs-client

    客户端挂在nfs

     1、查询nfs

    
    [root@vm12 nfs]# showmount -e 192.168.130.11
    Export list for 192.168.130.11:
    /data/test 192.168.130.*
    
    

    2、挂载目录

    mount -o rw,nosuid,fg,hard,intr 192.168.130.11:/data/test /nmt/nfs
    

    3、永久启动

    192.168.130.11:/data/test /mnt/nfs nfs defaults,netdev 0 0
    

    部署rsync+serync

    参考网址:

    官方文档

    参考1

  • 相关阅读:
    开网店10年 英国诞生首位eBay百万富翁
    WINCE BSP包只读属性导致编译出错
    WinCE文件目录定制
    项目管理概述学习记录(一)
    wince 串口调试信息输出
    Windows Embedded CE 6.0高级内存管理 .
    项目管理概述学习记录(二)
    Wince 中如何实现注册表恢复原厂设置
    Windows CE设备驱动开发之电源管理
    WINCE6.0拨号连不上
  • 原文地址:https://www.cnblogs.com/pansn/p/13095253.html
Copyright © 2011-2022 走看看