文章目录
- rsync基本说明
- rsync同步的过程中模式组成
- rsync三种工作方式
- 语法说明
- 第一种工作方式:本地同步
- 第二种工作方式:通过远程sheel方式
- 第三种工作方式:守护进程方式
- 第四种工作方式:临时启动rsync daemon
rsync基本说明
- (1)rsync的目的是实现本地主机和远程主机上的文件同步(这里包括远程拉到本地,本地推到远程这两种同步方式),还可以实现本地不同路径下文件的同步,
但是不能实现远程路径A
到远程路径B之间的同步
(scp命令可以实现!) - (2)对于提到的文件同步而言,里面涉及到了两点就是
源文件
和目标文件
,这里面就涉及到了本地及远程以那边的机器上的文件为同步基准的问题!
例如:
(1)想让远程主机上的数据文件和本地数据文件保持同步,是以本地数据文件作为同步基准,将本地的数据文件作为源文件
,推送
到目标主机上.
(2)想让本地主机文件和远程主机文件保持同步,是以目标主机上的文件为同步基准,将远程目标主机上的数据文件作为源文件
,拉取
到本地主机上来!
PS:
如果想要使用rsync实现本地两个文件之间保持数据的同步,rsync也是可以做到的,就想Linux系统中的cp命令一样,也是以本地A文件为源文件,本地B文件为目标文件,注意:这里的rsync实现的方式和cp命令并不一样!
(3)既然是同步数据文件,在这个同步的过程中必定会涉及到源
和目标
两个文件之间版本控制的问题
例如:
(1)是否要删除源主机上没有但是目标主机上多出来的文件?
(2)目标文件比源文件新时是否需要保持同步?
(3)遇到软连接时:是拷贝软连接本身还是拷贝软连接所指向的文件?
(4)目标文件已存在时是否要先对备份一下文件,等等....
rsync同步的过程中模式组成
(1)检查模式:决定哪些文件需要同步
检查模式是指按照指定规则来检查哪些文件需要被同步,例如:哪些文件明确被排除不传输的,
**默认情况:**rsync使用"quick check"算法
快速去检查
源文件和目标文件的大小/修改时间是否一致
,不一致就需要传输数据
当然也可以通过rsync选项来改变rsync的quick check
算法的检查模式,举例:选项"–size-only"选项表示quick check算法将仅检查文件大小不同的文件作为待传输文件.
还有很多检查模式所需的选项可以自行了解.
(2)同步模式:文件同步
同步模式是指在文件确定要被同步后,在同步过程发生之前要做哪些额外的工作,例如:是否在传输的时候删除源主机上但是目标主机上有的文件 ,是否需要备份已存在的目标文件,rsync也提供很多同步模式所需要的选项.
rsync三种工作方式
首先我们查看一下man手册
,在Linux系统上man手册是我们学习道路上强大的知识来源
,这里面有最全的使用说明文档!一定要学会巧用man手册
在命令行中敲入一下命令:
root@Geek~_~[17:45:38]:~#man rsync
会看到有语法说明和选项说明:
NAME
rsync — a fast, versatile, remote (and local) file-copying tool
SYNOPSIS
Local: rsync [OPTION...] SRC... [DEST]
Access via remote shell:
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
Access via rsync daemon:
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
语法说明
(1)rsync:为同步的命令
(2)[OPTION…]:为同步时的参数选项
(3)[USER@HOST…]:为rsync同步的远程连接用户和主机地址,USER表示数据传输到远程服务器上,传输数据用户的身份信息
(4)SRC:为源,即带拷贝的分区/文件或目录等,和HOST之间用一个冒号**":"
**连接
远程服务器的数据资源:(拉--本地从远端拉取数据)
本地服务器的数据资源:(推--本地向远端推取数据)
(5)[DEST]:为目标分区/文件或目录等
表示本地目录或文件信息:(拉--由本地从远端指定的某目录里拉取数据)
表示远程目录或文件信息:(推--由本地向远端指定的某目录里推取数据)
第一种工作方式:本地同步
基本语法介绍:
LOCAL:rsync [OPTION(可选参数).... ] SRC(需要同步的东西,`源`...) [DEST(目的地)]
例子:
rsync /etc/hosts /tmp/
PS:提一个很简单但是很多人犯迷糊的点
在拷贝目录的时候目录后面带"/"
和不带"/"
的区别:
例子:
/tmp/:表示将"根下"tmp目录下的内容推送过去
/tmp;表示将"跟下"tmp这个目录
以及目录下的内容
都推送过去(就是把目录直接拷贝过去了)
第二种工作方式:通过远程sheel方式
又称为:远程隧道模式
基本语法介绍:
Access via remote shell:
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
解释:(拉)Pull: rsync [OPTION...] [USER(我以什么身份登陆到你的主机)@]HOST:SRC... [DEST目的地]
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
解释:(推)Push: rsync [OPTION...] SRC...[USER@]HOST:DEST
图示:
第三种工作方式:守护进程方式
又称为:rsync daemon 方式(无差异备份
),会创建守护进程从后台等待着提供服务
基本语法介绍:
root@Geek~_~[19:50:52]:~#man rsync
Pull: (1)rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION..选项] [认证的用户信息USER@]HOST主机地址::SRC接模块信息..[DEST目的地]
(2)rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
Push: (1)rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync[OPTION..选项] SRC本地的数据信息... [认证用户信息USER@]HOST主机地址::DEST目的地
(2)rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
语法演示:
#pull拉取
rsync -avz rsync_backup@192.168.1.41::backup/geek.txt /tmp
#push推送
rsync -avz /etc rsync_backup@192.168.1.41::backup
说明:
(1)通过man帮助可以看到,这里拉和推都有两种方式可选,一般我们比较常用第一种方式,不经常使用第二种URL方式
(2)上面的演示不明白不要紧,我们下面会挨个讲解参数的作用,及其推送拉取的过程
图示:
注意
设定部署好
服务端(server)
和客户端(client)
之后,**推送
和拉取
都在客户端
**上进行!`
第四种工作方式:临时启动rsync daemon
通过远程shell也能临时启动
一个rsync daemon
,这个方式不同于第三种rsync daemon方式,它不需要远程主机上提前启动好rsync服务
,而是临时派生出rsync daemon,它是单用途的一次性rsync daemon
说明
由于仅临时读取rsync daemon的配置文件,当此次rsync同步完成后,远程shell启动的rsync daemon进程也自动消失,这里使用的语法格式和第三种工作方式相同
,但是要求[OPTION选项]部分不行明确指定"--rsh选项"
或者"-e选项"
参数说明: -e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
这章就讲到这里,在第三章中
(1)讲解rsync客户端访问服务端原理
(2)守护进程模式的搭建部署及使用