Rsync介绍和参数

一、Rsync

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

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

Rsync全称为remoterynchronization,rsync具有可使本地和远程两台主机之间的数据快速复制同步镜像、远程备份的功能,这个功能类似于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 (rcp、ssh等)传输可以分为两种情况,其语法分别为

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

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

1)Rsync为同步的命令

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

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

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
时间: 2024-10-11 10:33:15

Rsync介绍和参数的相关文章

linux rsync介绍(八)

[教程主题]:rsync [1] rsync介绍 Rsync(Remote Synchronize) 是一个远程资料同步工具,可通过LAN/WAN快速同步多台主机,Rsync使用所为的“Rsync演算法”来使本地主机和远程主机之间达到同步,这个演算法并不是每次都整份传送,它只传送两台计算机之间所备份的资料不同的部分,因此速度相当快. Rsync的优点如下: 1.可以镜像保存整个目录树和文件系统. 2.可以很容易的做到保持原来文件的许可权.时间.软链接等. 3.无须特使许可权即可安装. 4.拥有优

rsync的命令参数【转】

本篇文章,我们只介绍rsync的命令参数. rsync参数的具体解释如下: -v, –verbose 详细模式输出 -q, –quiet 精简输出模式 -c, –checksum 打开校验开关,强制对文件传输进行校验 -a, –archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD. -r, –recursive 对子目录以递归模式处理 -R, –relative 使用相对路径信息 -b, –backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老

Rsync使用中常见参数的说明

5.Rsync使用中常见参数的说明.md 常见参数说明 motd file:定义当客户端访问时看到的信息,默认为空. pid fle:定义rsync daemon将其PID写入的文件,如果此文件存在rsync,daemon会终止而不是覆盖. port:定义daemon监听的端口,默认为873. address:覆盖daemon默认监听的IP地址.如果daemon是被inetd启动,并且有 --address参数时,会被忽略. socket options:用来防止被人不停的连接.可以设置为所有s

Python基础【day04】:函数介绍、参数调用

本节内容 函数介绍 函数参数及调用 函数的非固定参数 函数介绍 一.介绍 在我们以往的学习编程的过程当中,碰到的最多的两张编程方式或者说编程方法:面向过程和面向对象.其实不管是哪一种,其实都是编程的方法论而已.但是现在有一种更古老的编程方式:函数式编程,以它的不保存的状态,不修改变量等特性,重新进入我们的视野. 面向对象 --->类 ---->class面向过程 --->过程--->def函数式编程-->函数--->def 二.函数定义 我们上初中那会也学过函数,即:y

使用rsync 的 --delete参数删除目标目录比源目录多余的文件

最近在处理策划资源文件的时候需要将目录A的文件全部同步到目录B的文件,并且把目录B内多余的文件全部删除掉.所以,就想到了使用rsync的--delete参数来实现功能. 创建示例如下://创建两个测试目录$ mkdir {dirA,dirB} //分别在两个目录创建相应的文件$ touch dirA/{fileA1.txt,fileA2.txt,fileA3.txt}$ touch dirB/{fileA1.txt,fileA2.txt,fileA3.txt,fileB1.txt,fileB2.

linux日常维护(rsync介绍,常用选项,rsync六种模式)

一.rsync介绍 rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.rsync使用所谓的"rsync算法"来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快. 从字面上的意思你可以理解为remote sync (远程同步)这样可以让你理解的更深刻一些.Rsync不仅可以远程同步数据(类似于scp [1]),当然还可以本地同步数据(类似于cp),但不同于cp或scp的一点是,rsync不像c

rsync 介绍和参数说明

Rsync 介绍: 我们经常需要在不同目录或者服务器之间做文件同步和更新,Linux提供了很多内置命令可以使用比如scp等等,但是今天我们介绍一个更加强大的工具rsync.rsync 命令是一个远程同步工具,可以通过AN\WAN快速同步多台主机间的文件,它使用的就是rsync算法达到本地和远程两个主机之间文件同步,该算法是增量算法,即只同步两个文件的不同部分,而不是每次同步整个文件,所以速度是相当快, rsync 使用: 无密码同步: 服务端需要配置 rsyncd.conf #This is t

RSYNC介绍

总结: 1.安装 一般不需要,默认已安装 2.服务器端配置 (1)/etc/rsyncd.secrets:保存登陆的用户名密码,如: scribe:abcpassword (2)/etc/rsyncd.conf:配置模块,指定登陆的用户,同步的路径,客户端的ip等.见后面的附录 3.在客户端进行rsync rsync -avzP [email protected]_server::scribe_script   scribe_script [rsyncd.conf] log file = /ho

rsync的详细参数

rsync参数的具体解释如下: -v, --verbose 详细模式输出-q, --quiet 精简输出模式-c, --checksum 打开校验开关,强制对文件传输进行校验-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD-r, --recursive 对子目录以递归模式处理-R, --relative 使用相对路径信息-b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename.可以使用