【Linux】Rsync远程同步及备份工具(Rsync简介、Rsync安装、rsync认证方式)
一、Rsync简介
rsync(Remote synchronization)是Liunx/Unix下的一个远程数据同步工具。
它可通过LAN/WAN(局域网/广域网)快速同步多台主机间的文件和目录,并适当利用rsync算法(差分编码)以减少数据的传输。
rsync算法并不是每一次都整份传输,而是只传输两个文件的不同部分,因此其传输速度相当快。
rsync能同步更新两处计算机的文件与目录,并适当利用差分编码以减少数据传输量。rsync中的一项同类软件不常见的重要特性是每个目标的镜像只需发送一次。rsync可以拷贝/显示目录内容,以及拷贝文件,并可选压缩以及递归拷贝。
在常驻模式(daemon mode)下(也就是守护进程,在后台持续运行),rsync默认监听TCP端口873,以原生rsync传输协议或者通过远程shell如RSH或者SSH提供文件。SSH模式下,rsync客户端运行程序必须同时在本地和远程机器上安装。
rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。
rsync特性
rsync支持很多特性:
1. 可以镜像保存整个目录树和文件系统
2. 可以很容易做到保持原来文件的权限、时间、软硬链接等等(和scp中-p参数功能类似)
3. 无须特殊权限即可安装
4. 快速:第一次同步时rsync会复制全部内容,但在下一次只传输修改过的文件。rsync在传输数据的过 程中可以实行压缩及解压缩操作,因此可以使用更少的带宽;
5. 安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接
6. 支持匿名传输,以方便进行网站镜像
Rsync的工作原理
客户端构造FileList,FileList包含了需要与服务器同步的所有【文件信息对】name->id(id用来唯一表示文件例如MD5,name是文件名)
客户端将FileList发送到服务器。
服务器上rsync处理客户端发过来的FileList,构建新的NewFileList。 其中根据MD5值比较,删除服务器上已经存在的文件信息对,只保留服务器上不存在或变化的文件。
客户端得到服务器发送过来的NewFileList,然后把NewFileList中的文件重新传输到服务器。
也就是客户端A创建一个Filelist,里面包含了所有客户端A需要与服务器B同步的所有文件的信息对;然后客户端A将这个Filelist发给服务器B;
服务器B使用rsync处理客户端A发来的Filelist,创建一个新的NewFilelist,里面删除了服务器B已经存在的文件,只留下服务器B上没有的文件或者变化了的文件;然后服务器B将这个NewFilelist发给客户端A;
客户端得到服务器发送过来的NewFileList,然后把NewFileList中的文件重新传输到服务器;实现同步;
举例:
文件加密:
语法:
md5sum 所需加密的文件名
fb956ba1056912397fc187243e13bcca 为加密后的id值;1为文件名
二、Rsync安装
安装rsync,我们可以分为两种方式:源码方式安装和RPM方式安装。
注意:rsync软件无论是服务器端还是客户端都是同一个软件包。
源码方式安装
# 源码方式安装rsync,需要到其官网下载对应的安装包。rsync官网:
rsync.samba.org
1)、下载
wget https://download.samba.org/pub/rsync/src/rsync-3.2.3.tar.gz
2)、解压并安装
tar -xvf rsync-3.2.3.tar.gz
3)、编译安装
# 源码安装rsync时,其编译时所需要的gcc库文件尽量提前安装完毕
# 默认安装到/usr/local/目录下
./configure
make &&make install
4)、设置开机启动
echo “/usr/local/bin/rsync --daemon -config=/etc/rsyncd.conf” >> /etc/profil
yum方式安装(推荐)
yum -y install rsync
三、rsync认证方式
rsync有两种常用的认证方式,一种是rsync-daemon方式,另外一种是ssh方式。
在平时使用过程,我们使用最多的是rsync-daemon方式。
注意:在使用rsync时,服务器和客户端都必须安装rsync程序。
rsync-daemon 认证
rsync在rsync-daemon认证方式下,默认监听TCP的873端口。
【rsync-daemon认证方式是rsync的主要认证方式,这个也是我们经常使用的认证方式。】
并且也只有在此种模式下,rsync才可以把密码写入到一个文件中。注意:
rsync-daemon认证方式,需要服务器和客户端都安装rsync服务
并且只需要rsync服务器端启动rsync,同时配置rsync配置文件。
客户端启动不启动rsync服务,都不影响同步的正常进行。
ssh认证
rsync在ssh认证方式下,可通过系统用户进行认证,即在rsync上通过ssh隧道进行传
输,类似于scp工具。
此时同步操作不在局限于rsync中定义的同步文件夹。注意:
ssh认证方式,不需要服务器和客户端配置rsync配置文件
只需要双方都安装rsync服务,并且也不需要双方启动rsync。# 若rsync服务端SSH为标准端口,此时rsync使用方式如下:
rsync -avz /root/test root@10.10.10.10:/root/# 若rsync服务端SSH为非标准端口,可通过rsync的-e参数进行端口指定。使用方式如
下:
rsync -avz /root/test -e 'ssh -p1234' root@10.10.10.10:/root/
两种认证方式的本质区别:
ssh 协议认证连接的两端是通过管道完成通信和数据传输的,当连接到远程主机时,将在远程主机 fork 出 rsync 进程使其成为 rsync server;
而 rsync 协议认证是事先在远程主机上运行 rsync 守护进程,监听套接字等待客户端的连接,建立连接后所有通信方式都是通过套接字完成的。
【Linux】Rsync远程同步及备份工具(Rsync简介、Rsync安装、rsync认证方式)相关推荐
- rsync 远程同步
rsync 远程同步 前言 一.Rsync简介 (1)rsync介绍 (2)rsync同步方式 二.rsync同步源 (1)配置rsync源 ①基本思路 ②配置文件rsync.conf ③独立的账号密 ...
- rsync远程同步的基本配置与使用
rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份,镜像服务器等应用. rsync的官 ...
- 如何实现rsync远程同步和inotify实时同步
目录 一:rsync介绍 1.1:rsync 服务的模式 1.2:rsync服务原理 1.3:配置rsync源思路 二.搭建rsync服务 2.1:建立rsync配置文件 2.2:客户机服务器B测试 ...
- rsync远程同步+inotify监控
rsync远程同步+inotify 一.基本理论概述 1.1 前言概述 1.2 rsync服务器概述 1.3 rsync同步方式 二.实验操作 2.1 rsync本地复制 2.2 rsync服务器和客 ...
- 快速入门rsync远程同步
文章目录 一.rsync同步简介 二.配置rsync源服务器 三.rsync远程同步实验 3.1实验环境 3.2实验步骤 四.rsync实时同步 4.1为什么要实时同步 4.2关于inotify 4. ...
- rsync 远程同步部署 上行下行同步
rsync远程同步 一.rsync (Remote Sync,远程同步) 二.部署rsync源服务器 三.发起端 四.发起端配置 rsync+inotify 一.rsync (Remote Sync, ...
- Rsync远程同步+inotify监控实时同步概述,部署
文章目录 一,rsync 概述 1.rsync服务器 2.rsync同步方式 3.rsync特性 二.rsync与cp.scp对比 三,rsync命令 四,rsync 本地复制实例 五,rsync同步 ...
- rsync—远程同步
目录 一:rsync概述 1.1rsync简介 1.2rsync同步方式 二:rsync特性 三:rsync同步源 四:rsync与cp.scp对比 五:常用rsync命令 六:rsync本地复制实例 ...
- rsync远程同步及结合inotify实现实时同步
rsync远程同步及结合inotify实现实时同步 rsync 命令格式 常用选项 实现免交互 rsync同步配置 环境准备 同步源编写rsync配置文件 创建数据文件 确保读取权限 开启服务 sla ...
最新文章
- jQuery选择器的工作原理和优化
- 网页图片左右滚动特效实例
- 直播预告丨企服企业如何科学搭建规模化获客体系?
- Java---形参个数可变的方法
- 关于vue外卖项目的一些总结
- eclipse maven maven-archetype-webapp 创建失败
- C# WinForm 判断程序是否已经在运行,且只允许运行一个实例,附源码
- 【java学习之路】(java SE篇)011.线程池
- 118 Python程序中的线程操作-守护线程
- P2986 [USACO10MAR]伟大的奶牛聚集(思维,dp)
- 计算机做无线AP共享文件,Windows 7妙用 笔记本变无线AP轻松共享
- Java poi 表格居中
- GitHub · 如何创建文件夹
- OpenCV入门系列 —— boxFilter盒子滤波
- 农夫山泉(数据范围是亮点)
- 微信小程序怎么推广运营-微信小程序引流方法
- js逆向加密五邑大学教务系统密码AES实现模拟登录(仅供参考)
- Shell正则表达式详解(一)
- English Learning - Day6 作业打卡 2022.12.12 周一
- 阿里云邮箱短信验证和阿里云手机短信发送
热门文章
- 计算机连接投影仪记录,终极:如何将投影仪连接到计算机上如何将计算机连接到投影仪上[步骤]...
- vmware安装hadoop(多台机相连)(三)
- SAP ABAP开发金额负号前置
- Linux被kdevtmpfsi,pnscan挖矿病毒入侵记录
- 算法笔记练习 4.4 贪心 问题 F: 迷瘴
- j将表格数据转换成Word、Excel
- JS 校验18位身份证号码正确性,出生年月日校验,校验码判断
- IPTV支持TS流的方案形成过程
- 领峰:现货黄金价格走势图的分析要怎样正确的进行?
- 想见你的弹幕爬取和对弹幕信息简单可视化