Rsync介绍和参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rsync介绍和参数相关的知识,希望对你有一定的参考价值。

一、Rsync

Rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据镜像同步备份的优秀工具。rsync适用于unix/linux/windows等多种操作系统平台。

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

 

Rsync全称为remoterynchronizationrsync具有可使本地和远程两台主机之间的数据快速复制同步镜像、远程备份的功能,这个功能类似于scp命令,但优于scp。还可以在本地主机的不同分区或目录之间全量及增量的复制数据,这类似于cp命令,同样也优于cp命令。

  rsync还可以实现类似rm的删除功能

 

rsync的特性

  支持拷贝特殊文件如链接,设备等

  可以有排除揸定文件或目录同步的功能,相当于打包命令tar的排除功能

  可以做到保持原文件或目录的权限、时间、软硬链接、属主、组等所有属性均不改变。

  可实现增量同步,既只同步发生变化的数据,因此数据传输效率很高。

  可使用rcp,rsh,ssh等方式来配合传输文件

  可以通过socket(进程方式)传输文件和数据

  支持匿名的或认证(无需系统用户)的进程模式传输,可实现主主便安装的进行数据备份及镜像

 

 

二、Rsync命令同步参数选项

 rsync [OPTION…] SRC… [DEST]

常用参数选项说明:

-v  --verbose详细模式输出,传输时的进度等信息

-z  --compress传输时进行压缩以提高传输效率

-r --recursive 对子目录以递归模式

-t  --time  保持文件时间信息

-o  --owner 保持文件属主信息

-p  --perms 保持文件权限

-g  --group  保持文件属组信息

-P  --progress 显示同步过程及传输时的进度等信息

-a  --archive  归档模式,等于-rtopgDl

-D  --devices 保持设备文件信息

-l   --links保留软链接

-e    --rsh=COMMAND 使用的信协议,如ssh

--exclude=PATTERN  指定排除不需要传输的文件模式

 

 

三、rsync大致使用三种主要的传输数据的方式:

主机本地间的数据传输(此类似于cp命令的功能)

借助rcp,ssh等通道来传输数据(此类似于scp命令的功能)

以守护进程(socket)的方式传输数据(这个是rsync的重要的功能)

 

  1. 本地数据传输模式(local-only mode

语法:rsync [OPTION…] SRC… [DEST]

 1) rsync为同步的命令  

  • 为同步时的参数选项

  • 为源目录、分区或文件

 4) [DEST]为目的分区、文件或目录等

实例1:把系统的hosts文件同步到/opt目录

[[email protected] ~]# rsync /etc/hosts /opt

实例2:把opt目录拷贝到/mnt

[[email protected] ~]# rsync -avz /opt /mnt/

 提示:在上面例子中,/opt//opt 仅差一个/意义就不大相同,/opt//opt/目录里面的内容同步,opt目录本身并不同步,而后者/opt 表示把opt目录本身及里面的内容全都同步到/tmp

 

 

  1. 通过远程shell进行数据传输(remote shell mode

通过远程shell (rcpssh)传输可以分为两种情况,其语法分别为

拉取 pull: rsync [OPTION…] [[email protected]]HOST:SRC… [DEST]

推送 push: rsync [OPTION…] SRC… [[email protected]]HOST:DEST

   1)Rsync为同步的命令

2) [OPTION..]为同步时的参数选项

   3)[[email protected]]HOSTRsync同步的远程连接用户和主机地址

   4)SRC为源分区、文件或目录等,和HOST之间用一个冒号连接

   5)[DEST]为目的分区、文件或目录等

   其中拉取表示同远端主机把数据同步到执行命令的本地主机相应目录;推送表示从本地主机执行命令把本地的数据同步到远端主机指定目录下。
    拉取实例:

rsync -avzP -e"ssh -p22" [email protected]:/opt /tmp

推送实例:

rsync -avzP /tmp-e "ssh -p22" [email protected]:/opt

语法说明:

1-vzrtopg 相当于上文伯-avz 表示同步时文件和目录属性不变

2--progress显示同步的过程,可以用-P替换

3-e “ssh -p22” 表示通过ssh的通道传输数据

4[email protected]:/opt 是远程的主机用户,地址和路径

5/tmp 本地的路径

 

配置ssh key密钥实现数据免登陆验证

[[email protected] .ssh]# ssh-keygen -t dsa
[[email protected] .ssh]# ssh-copy-id -i  id_dsa.pub 192.168.1.111

 



 

#!/bin/sh
. /etc/init.d/functions
file="$1"
remote_dir="$2"
if [ $# -ne 2 ];then
  echo "usage:$0 argv1 argv2"
  echo "must have two argvs."
   exit
fi
 
for ip in $(cat /home/scripts/iplist.txt)
do
 #scp -P22 -r -p $file [email protected]$ip:~ >/dev/null 2>&1 && #ssh -p22 -t [email protected]$ip sudo rsync ~/$file $remote_dir >/dev/null2>&1
  rsync -avzP $1 -e "ssh -p 22" [email protected]$ip:$2 >/dev/null2>&1
 
if [ $? -eq 0 ];then
   action "$ip is successful." /bin/true
 else
   action "$ip is failure." /bin/false
 fi
done


本文出自 “Mr.Xiong`s 运维日志” 博客,请务必保留此出处http://mrxiong2017.blog.51cto.com/12559394/1933717

以上是关于Rsync介绍和参数的主要内容,如果未能解决你的问题,请参考以下文章

八周二次课 rsync工具介绍,常用参数选项以及和ssh同步

Rsync下行同步+inotify实时同步介绍和部署

rsync 参数配置

Rsync介绍

10.28 rsync工具介绍 10.29/10.30 rsync常用选项 10.31 rsync通

rsync工作方式及命令参数