zoukankan      html  css  js  c++  java
  • rsync命令的基本使用

                        rsync命令的基本使用

                                          作者:尹正杰

    版权声明:原创作品,谢绝转载!否则将追究法律责任。

      rsync服务软件是一款开源,高速的,数据同步(拷贝)工具。

    一.rsync服务的特点

    1>.本地拷贝

      可以把数据从一个路径复制到另一个路径,类似与cp和mv的功能。

    2>.异地拷贝

      可以从一台机器把数据复制到另一台机器,类似与scp。

    3>.增量备份

      可以实现增量拷贝,只把多的内容拷过去,效率很高。

    4>.删除功能

      rsync本身并没有删除功能,但是可以通过它的参数来实现删除功能,类似于Linux的rm命令。

    5>.rsync服务模式

      可以挂起后台进程,接受别人访问,这也是它的特殊的地方。

    二.rsync实操案例

    1>.本地拷贝

    [root@yinzhengjie ~]# rsync -avz /var/log/messages /tmp/

      与cp不同的是它默认就是增量拷贝,当第一个拷贝一个较大的文件时,若第二次在继续拷贝该文件时,它只会拷贝新增的内容。

      rsync命令参数:

        -v:--verbose,显示输出过程

        -z:--compress,压缩

        -a:--archive,多参数集合,也叫归档模式,包括多个参数,相当于:-rlptgoD(no -H,-A,-X)。

        -r:--recursive,递归

        -t:--times,保持修改时间属性

        -o:--owner 保持属主不变

        -p:--perms 保持权限不变

        -g:--group 保持用户组不变

        -l:--links 保证用户组不变

        -q:--quiet 安静的拷贝

    2>.删除功能

    [root@yinzhengjie ~]# mkdir /yinzhengjie

    [root@yinzhengjie ~]# rsync -avz --delete /yinzhengjie/ /opt/

      表示将目标文件的内容和本文件的内容一致,若目标文件中存在本目录中不存在的文件时,直接删除!

    3>.排除文件

      --exclude:排除文件,当然也支持排除多个文件,用“{a.log,b.log,c.log}”替换图中的"a.log"即可。

       --exclude-from:从文件中排除

     

     4>.异地拷贝

    [root@yinzhengjie ~]# rsync -avz /yinzhengjie -e 'ssh -p 5200' yinzhengjie@172.16.3.210:~

      可以从一台机器把数据赋值到另一台机器,相当于scp命令。只不过scp命令是全量拷贝,而rsync是增量拷贝(只拷贝变化的文件),各自有自己的特点。

    提示:"/yinzhengjie"和"/yinzhengjie/"这两个目录的区别是什么?

      /yinzhengjie: 指的是目录本身及目录下的内容。

      /yinzhengjie/ :指的是目录下的内容。

    5>.关于远程拷贝的shell脚本

    #!/bin/bash
    #@author :yinzhengjie
    #blog:http://www.cnblogs.com/yinzhengjie
    #EMAIL:y1053419035@qq.com
    
    #判断用户是否传参
    if [ $# -lt 1 ];then
        echo "请输入参数";
        exit
    fi
    
    
    #获取文件路径
    file=$@
    
    #获取子路径
    filename=`basename $file`
    
    #获取父路径
    dirpath=`dirname $file`
    
    #获取完整路径
    cd $dirpath
    fullpath=`pwd -P`
    
    #同步文件到DataNode
    for (( i=102;i<=104;i++ ))
    do
        #使终端变绿色 
        tput setaf 2
        echo =========== s$i %file ===========
        #使终端变回原来的颜色,即白灰色
        tput setaf 7
        #远程执行命令
        rsync -lr $filename `whoami`@s$i:$fullpath
        #判断命令是否执行成功
        if [ $? == 0 ];then
            echo "命令执行成功"
        fi
    done
  • 相关阅读:
    推荐一个css抖动库
    八佰
    如何将猫猫监控放在博客上
    一个springboot注解不成功的小问题
    vue整理
    springboot整理
    国外服务器:org.xml.sax.SAXParseException
    记一次tomcat运行起来了但是项目没起来的问题
    一个狗血的mysql编码错误
    js中for(var key in o ){};用法小记
  • 原文地址:https://www.cnblogs.com/yinzhengjie/p/8948415.html
Copyright © 2011-2022 走看看