zoukankan      html  css  js  c++  java
  • rsync工具介绍 rsync常用选项 rsync通过ssh同步

    1,rsync工具介绍。

        rsync是Linux系统下数据备份的一种工具。从字面上理解就是远程同步(remote sync),rsync不仅可以远程同步数据(类似于scp),而且可以本地同步数据(类似于cp),但不同于scp和cp的一点是,它不会覆盖以前的数据(如果数据已经存在),而是先判断已经存在的数据和新数据的差异,只有数据不同时才会把不同的部分覆盖。

       安装命令:yum install -y rsync。  

        示例:把/etc/passwd同步到/tmp/目录下并取名10.txt

        

         远程拷贝是这样的形式:IP:path(例如192.168.121.129:/root/)

        

    2,rsync命令格式。    

    rsync [OPTION]... SRC DEST

    rsync [OPTION]... SRC [USER@]HOST:DEST

    rsync [OPTION]... [USER@]HOST:SRC DEST

    rsync [OPTION]... [USER@]HOST::SRC DEST

    rsync [OPTION]... SRC [USER@]HOST::DEST

    SRC:源文件或目录

    DEST:目标文件或目录

    USER@:目标用户,不加默认为root。

    HOST:远程主机IP

    3,rsync常用选项。

        

    -a 归档模式,表示以递归方式传输文件,并保持所有属性,等同于-rlptgoD, -a选项后面可以跟一个 --no-OPTION 这个表示关闭-rlptgoD中的某一个例如 -a--no-l 等同于-rptgoD

    -r 对子目录以递归模式处理,主要是针对目录来说的,如果单独传一个文件不需要加-r,但是传输的是目录必须加-r选项

    -v 打印一些信息出来,比如速率,文件数量等

    -l 保留软链接

    -L 向对待常规文件一样处理软链结,如果是SRC中有软连接文件,则加上该选项后将会把软连接指向的目标文件拷贝到DST

    -p 保持文件权限

    -o 保持文件属主信息

    -g 保持文件属组信息

    -D 保持设备文件信息

    -t 保持文件时间信息

    --delete 删除那些DST中SRC没有的文件

    --exclude=PATTERN 指定排除不需要传输的文件,等号后面跟文件名,可以是万用字符模式(如*.txt)

    --progress 在同步的过程中可以看到同步的过程状态,比如统计要同步的文件数量、同步的文件传输速度等等

    -u 加上这个选项后将会把DST中比SRC还新的文件排除掉,不会覆盖

    实验:

     1)建立目录及文件:

        

    2)使用 -a 选项

        

        这里有一个问题,就是本来想把test1目录直接拷贝成test2目录,可结果rsync却新建了test2目录然后把test1放到test2当中。这是因为我们没有加上斜杠/的原因,我们在使用rsync备份目录时要养成加斜杠的习惯。

        

      -a选项等同于-rlptgoD,而且 -a 还可以和 --no-OPTIN 一并使用。下面看看-l选项的作用:

        

        直接跳过了软连接文件123.txt。

    3)使用-L选项。可以把SRC中软连接的目标文件给拷贝到DST.

        

    4) 使用-u选项。

        查看一下test1/1 和test2/1的创建时间。

        

        使用touch修改一下test2/1的创建时间,然后不加-u同步。test2/1 的创建时间又变成和test1/1的创建时间一样了。

        

        加上-u 选项后,不会再把 test1/1 同步为 test2/1 L 。

    5)使用 --delete 选项。

        首先删除test1/123.txt:

        

        然后把test1/ 目录 同步到 test2/ 目录下:

       

        test2/目录并没有删除掉123.txt, 下面加上 --delete 选项:

        

        test2/ 目录里的123.txt也被删除了,这就是 --delete 选项的用处。还有一种情况就是如果在DST增加文件了,而SRC当中没有这些文件,同步时加上 --delete 选项后同样会删除新增的文件:

        

    6)使用 --exclude 选项。

        

        另外还可以使用匹配字符 *

        

    4. rsync通过ssh的方式同步。

          上面介绍的5种命令格式当中,第二、第三(1个冒号)就属于通过ssh的方式,这种方式其实就是让用户去登录到远程机器,然后执行rsync的任务。

        第二种方式,通过ssh拷贝的数据,需要输入192.168.121.129这台机器www账户的密码。    

        

        第三种方式:

        

         以上两种方式如果写到脚本里,备份起来就有麻烦了,因为要输入密码,脚本本来就是自动的,不可能做到的。但是不代表没有解决办法。那就是通过密钥验证,密钥不设立密码就ok了。

          主机信息:192.168.121.128,主机名:wwan-01,192.168.121.129,主机名:wwan-02。需要从wwan01上拷贝数据到wwan02。

         首先确认一下wwan01上是否有这个文件 /root/.ssh/id_rsa.pub,如果没有按照如下方法生成该文件。

          

         在这个过程中会有一些交互的过程,它首先提示要输入这个密钥的密码,出于安全考虑应该定义个密码,但是我们的目的就是为了自动化同步数据,所以这里不输入任何密码,直接按回车,即密码为空。最后则生成了私钥(/root/.ssh/id_rsa)和公钥文件(/root/.ssh/id_rsa.pub)。

        把公钥文件的内容拷贝到目标机器上:

        

      复制主机wwan01上的/root/.ssh/id_rsa.pub文件内容,粘贴到主机wwan02的/home/www/.ssh/authorized_keys中:

  • 相关阅读:
    Qt(python) + 百度语音合成 实现demo
    windows7 + Qt(MSVC2017) + VS2019安装配置
    ubuntu下openCV-Haar特征分类器训练
    坚果云+typora(个人十分喜欢的一个记笔记方式)
    文本编辑--程序员专属技能
    ftp、tftp、nfs--服务器搭建
    QT--动态人流量监测系统
    C++ --内存四区概述
    CTFHUB-技能树-Web-信息泄露
    网络教育行业频发奖金高薪挖人,在线教育行业将迎来快速发展
  • 原文地址:https://www.cnblogs.com/twobrother/p/11556046.html
Copyright © 2011-2022 走看看