• 二十七、rsync同步工具


    1.什么是rsync?

        Rsync是一款开源的、快速的,多功能的,可实现全量及增量的本地或者远程数据同步备份的优秀工具。windows和linux都可以。

      官网:http:www.samba.org/ftp/rsync/rsync.html

    2.rsync简介

       类似scp,但是优于它,增量,scp是全量的,但是rsync又不是加密的。也可以在本地不同目录间进行拷贝,全量和增量都可以。当然,也可以进行删除文件和目录。

       所以rsync=scpcp m 优于他们

       在同步数据的时候,有自己独特的算法,仅同步大小或者最后修改时间发生变化的文件或者目录,也可以根据权限、内容变化等特点进行同步,所以是增量同步。rsync效率很高。

    3.RSYNC的工作场景:

      两个服务器之间的备份:

     1)定时同步:定时同步不能频繁,因为定时同步消耗cpu,文件需要不断的对比,如果频繁,存在风险,

     2.)实时同步:区别于定时同步,对相关的目录进行监控,有变化就进行同步,不对老的目录或者文件进行检查同步。

         有两种:rsync+inotify          rsync+sersync        (inotify和sersync都是监控目录的变化)

    在技术上,后端存储和数据库都是实时同步的,而存储一般用到的技术就是rsync。

    4.方案选择:

     在跨机房选择备份的时候,方案二优于方案一,方案一占用带宽较大。

    5.RSYNC三种工作方式:

      1)单个主机本地之间的数据传输:类似CP

        rsync  -azv     /etc/hosts   /tmp/    :类似CP,表示拷贝,如果命令执行两边,对比发现,第二次没有执行,因为没有变化不在拷贝

        rsync  -r  --delete  /temo/    /data/   表示将/temo/目录下面的所以内容拷贝到/data/下面,/data/中的内容全部删除,简而言之:/temo/==/data/

     2)借助如SSH等工具(类似SCP),两个或者多个主机之间

       推:rsync -avz -e 'ssh -P 52113'    /etc/hosts   olbdoy1@10.0.0.8:~

      拉:rsync -avz -e 'ssh -P 52113'   oldboy1@10.0.0.9:~/hosts   /home/oldboys1/

     参数说明:-v  进度说明    -a  归档模式,递归,保持属性等     -z  压缩传输      -e  指定 哪个协议通道

    3)进程模式传输(socket)守护进程(重点)

        1.查看是否有此软件:

        which  rsync   |  rpm -qa rsync

     [root@djw ~]# which rsync
     /usr/bin/rsync
    [root@djw ~]# rpm -qa rsync
    rsync-3.0.6-12.el6.x86_64

       2.查看版本(3.0.6)相比2版本,最大的改变是一边对比一边同步

       3.rsync的配置文件,默认是不存在的:/etc/rsyncd.conf (服务端)

       #this is rsync server  dangjingwei
    uid = rsync
    gid = rsync
    #安全无需考虑,所以是no
    use chroot = no
    #有多少个客户端可以同时连接
    max connections = 200
    timeout = 300
    #将进程号放到文件中,找到文件中的进程号后,直接命令杀除,不需要再进行查找进程号后杀除
    pid file = /var/run/rsyncd.pid
    #类似一把锁,网络传输也有先后顺序
    lock file = /var/run/rsync.lock
    log file = /var/log/rsyncd.log
    [oldboy]
    #共享的目录
    path=/oldboy/
    ignore errors
    #可读可写
    read only = false
    list = false
    hosts allow = 192.168.0.0/24
    hosts deny = 0.0.0.0/32
    #虚拟用户和密码
    auth users = rsync_backup :#设置允许连接服务器的账户,此账户可以是系统中不存在的用户
    secrets file = /etc/rsync.password: #密码验证文件名,该文件权限要求为只读,建议为600,仅在设置auth users后有效

     4.启动:rsync --daemon(已守护进程的方式启动) 

     5.进行查看  netstat -lntup |greo 873

     6.那么启动rsync的用户就要对相应的同步目录具有权限,则:mkdir -p  /oldboy/       chown  -R  rsync.rsync   /oldboy

     7.如果再授权的时候没有此用户,则需要创建: useradd rsync -s /sbin/nologin

     8.将虚拟用户放入:echo "rsync_backup:123456">/etc/rsync.password

    9.权限变成只读:chomd 600 /etc/rsync.password

    10.客户端配置

        1)有rsync :rpm -qa rsync

        2)虚拟用户密码 echo"123456">/etc/rsync.password

        3)权限为600:chmod 600 /etc/rsync.password

     11.操作

       无论是推还是拉,都是在客户端进行的:

       拉到客户端:

        1)rsync -avz  rsync_backup@192.168.0.104::oldboy   /dangjingwei/data1  --password-file=/etc/rsync.password

        2)rsync -avz  rsync://rsync_backp@192.168.0.104/oldboy      /dangjingwei/data1  --password-file=/etc/rsync.password

       推到服务端:

       1)rsync  -avz  /data1  rysnc_backup@192.168.0.104::oldboy --password -file=/etc/rsync.password

       2) rsync -avz  /data1   rsync://rsync_backup@192.168.0.104::oldboy --password-file=/etc/rsync.password  

  • 相关阅读:
    3.30一周拾遗
    3.25周 一周拾遗
    自动加载以及Composer的实现
    MySQL 事务处理
    PHP代码实现3 [函数角度]
    PHP代码实现2 [从变量和数据的角度] 1
    PHP代码实现2 [从变量和数据的角度] 2
    vue 报错: [Vue warn]: Error in nextTick: "RangeError: Maximum call stack size exceeded" 很可能是你的name错了
    vue电商开发记录1—实现电商图片放大镜,移入放大效果
    vue图片点击放大预览v-viewer
  • 原文地址:https://www.cnblogs.com/dangjingwei/p/10995713.html
Copyright © 2020-2023  润新知