• rsync简单介绍-001


    一、rsync介绍

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

    二、全量和增量

    1、全量:将全部数据进行传输覆盖

    2、增量:只传输差异部分的数据

    (1)实现增量传输的原理:

    Rsync通过其独特的“quick check”算法,实现增量传输数据

    [root@backup ~]#man rsync
    Rsync  finds  files  that  need  to  be transferred using a “quick check” algorithm (by default)  that  looks  for  files  that  have changed  in  size  or  in  last-modified time.  Any changes in the other preserved attributes (as requested by options) are  made  on the  destination file directly when the quick check indicates that the file’s data does not need to be updated.

    在同步备份数据时,默认情况下,Rsync通过其独特的“quick check”算法,它仅同步大小或者最后修改时间发生变化的文件或目录,当然也可根据权限,属主等属性的变化同步,但需要指定相应的参数,甚至可以实现只同步一个文件里有变化的内容部分,所以,可以实现快速的同步备份数据。

    注意:

    centos 5 rsync 2.x 先比对再同步,速度较慢

    centos 6 rsync 3.x 一边比对,一边对差异部分进行同步

    三、软件版本

    [root@backup ~]# rsync --version
    rsync  version 3.0.6  protocol version 30
    Copyright (C) 1996-2009 by Andrew Tridgell, Wayne Davison, and others.
    Web site: http://rsync.samba.org/
    Capabilities:
        64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
        socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
        append, ACLs, xattrs, iconv, symtimes
    rsync comes with ABSOLUTELY NO WARRANTY.  This is free software, and you
    are welcome to redistribute it under certain conditions.  See the GNU
    General Public Licence for details.

    四、rsync软件功能介绍

    类似于 cp 命令 -- 实现本地备份传输数据

    类似于scp 命令 -- 远程备份传输数据

    类似于 rm 命令 -- 实现无差异同步备份

    类似于 ls 命令 -- 本地文件信息查看

    1、rsync == cp

    [root@backup ~]# cp -a  /etc/hosts /tmp/
    [root@backup ~]# ls /tmp/
    hosts
    [root@backup ~]# m /tmp/hosts
    [root@backup ~]# rsync  /etc/hosts /tmp/
    [root@backup ~]# ls /tmp/hosts
    /tmp/hosts

    2、rsync == scp

    (1)#使用scp实现

    #检查对端服务器目标位置上是否有该文件

    [root@nfs01 ~]# ls /tmp/hosts
    ls: cannot access /tmp/hosts: No such file or directory

    #从本地拷贝到远端服务器上

    [root@backup ~]# ls /tmp/hosts
    /tmp/hosts
    [root@backup ~]# scp -rp /etc/hosts 10.0.0.31:/tmp/
    The authenticity of host '10.0.0.31 (10.0.0.31)' can't be established.
    RSA key fingerprint is d3:41:bb:0d:43:88:da:a3:2c:e8:36:91:11:c9:e4:9c.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '10.0.0.31' (RSA) to the list of known hosts.
    root@10.0.0.31's password:
    hosts                                           100%  357     0.4KB/s   00:00

    #检查远端服务器上的结果

    [root@nfs01 ~]# ls /tmp/hosts
    /tmp/hosts

    (2)#使用rsync 实现

    [root@backup ~]# rsync -rp /etc/hosts 10.0.0.31:/tmp/
    root@10.0.0.31's password:
    [root@backup ~]#
    [root@nfs01 ~]# ls /tmp/hosts
    /tmp/hosts

    3、rsync == rm

    (1)创建出来一次命令 进行操作

    [root@backup tmp]# mkdir /znix
    [root@backup znix]# cp /tmp/* .
    [root@backup znix]# ll
    total 4
    -rw-r--r-- 1 root root 357 Oct 11 15:21 hosts

    #rm命令操作

    [root@backup znix]# rm -rf /znix/hosts
    [root@backup znix]# ll /znix/hosts
    ls: cannot access /znix/hosts: No such file or directory

    查看这文件

    [root@backup ~]# l
    total 4
    -rw-r--r-- 1 root root 357 Oct 11 15:21 hosts

    (2)创建一个空目录,使用空目录进行无差异同步

    [root@backup ~]# mkdir /null
    [root@backup ~]# rsync --delete  /null/ /znix/
    rsync: --delete does not work without -r or -d.
    rsync error: syntax or usage error (code 1) at main.c(1422) [client=3.0.6]
    [root@backup ~]# rsync  -a  --delete  /null/ /znix/
    [root@backup ~]# ll /znix/
    total 0

    4、rsync == ls -l

    使用rsync 可以实现与 ls 类似的功能

    [root@backup ~]# ls -l install.log
    -rw-r--r--. 1 root root 21736 Sep 25 08:38 install.log
    [root@backup ~]# rsync install.log
    -rw-r--r--       21736 2017/09/25 08:38:28 install.log

    五、rsync的特性介绍

    1、 支持拷贝普通文件与特殊文件如链接文件,设备等。
    2、 可以有排除指定文件或目录同步的功能,相当于打包命令tar的排除功能。
        #tar zcvf backup_1.tar.gz  /opt/data  -exclude=clsn  
        说明:在打包/opt/data时就排除了clsn命名的目录和文件。
    3、 可以做到保持原文件或目录的权限、时间、软硬链接、属主、组等所有属性均不改变-p。
    4、 可实现增量同步,既只同步发生变化的数据,因此数据传输效率很高(tar -N)。
        # 将备份/home 目录自 2008-01-29 以来修改过的文件
        # tar -N 2008-01-29 -zcvf /backups/inc-backup_$(date +%F).tar.gz /home
        # 将备份 /home 目录昨天以来修改过的文件
        # tar -N $(date -d yesterday "+%F") -zcvf /backups/inc-backup_$(date +%F).tar.gz /home
        # 添加文件到已经打包的文件
        # tar -rf all.tar *.gif
        说明:这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
    5、 可以使用rcp,rsh,ssh等方式来配合进行隧道加密传输文件(rsync本身不对数据加密)
    6、 可以通过socket(进程方式)传输文件和数据(服务端和客户端)*****。重点掌握
    7、 支持匿名的或认证(无需系统用户)的进程模式传输,可实现方便安全的进行数据备份及镜像。

    六、rsync的企业工作场景说明

    1、两台服务器之间数据同步(定时任务cron+rsync)

        同步网站内部人员数据信息(定时任务最小周期为1分钟)

    2、两台服务器之间数据同步(实时任务inotify/sersync/lrsyncd+rsync)

        同步网站用户人员数据信息

  • 相关阅读:
    汽车行业如何利用大数据
    汽车行业如何利用大数据
    Linux下Gcc 的编译过程
    第一个GraphX程序
    VC++ 模拟"CLICK事件"关闭指定窗体
    基于Canvas的Char.js库使用
    VELT-0.1.6开发:载入根文件系统
    HDU 5411 CRB and puzzle (Dp + 矩阵高速幂)
    JavaScript图片裁剪
    C++ string中的几个小陷阱,你掉进过吗?
  • 原文地址:https://www.cnblogs.com/bazingafraser/p/8580678.html
Copyright © 2020-2023  润新知