Rsync数据同步实战:命令操作指南与最佳实践

🚩本文介绍

​ 在本文中,我们不仅会介绍Rsync的基本概念和特点,还会详细解析Rsync命令的各个参数和选项,让读者能够灵活运用这些命令完成各种数据同步任务。无论您是数据管理员、系统工程师还是IT爱好者,只要您对Rsync数据同步感兴趣,本文都将为您提供宝贵的参考和借鉴。通过学习和实践本文的内容,您将能够轻松驾驭Rsync,实现高效、稳定的数据同步,为您的工作和生活带来便利。

⭐关于博主⭐

🏆荣誉认证:51CTO博客专家博主、2023年度博主Top3、TOP红人、明日之星;CSDN开发者社区运维领域实力新星、2023年大学生博主学习挑战赛Top2;阿里云开发者社区专家博主、技术博主、星级博主、云计算方向ACP证书获得者;

💻本文由微笑的段嘉许原创!

🎉欢迎关注🔎点赞👍收藏⭐留言📝

📆首发时间:🌴2024年4月23日🌴

✉️坚持和努力一定能换来诗与远方!

🙏作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!

img

不要偷走我小火车哦~ ~ ~

文章目录

  • 🚩本文介绍
    • Rsync复制原理
    • Rsync功能
    • 工作模式
    • 本地数据传输模式
      • **作为本地复制命令应用**
      • 作为本地删除数据命令应用
      • 作为本地查询数据命令
    • 远程数据传输模式
    • 守护进程传输模式
    • 客户端命令参数选项

Rsync复制原理

​ 在备份复制数据时,Rsync通过独特的quickcheck算法,仅复制大小或者最后修改时间发生变化的文件或目录当然也可以实现只复制一个文件里有变化的部分内容,所以可以实现快速地备份复制数据,即采用增量复制方法对数据信息进行复制,与传统cp、scp复制工具地全量复制截然不同,增量复制数据在效率上远远高于全量复制。

Rsync功能

  • 本地数据同步复制(本地工作模式,相当于cp命令)
  • 远程数据同步复制(远程Shell工作模式,相当于scp命令)
  • 数据信息删除功能(本地工作模式,相当于rm命令)
  • 数据信息查看功能(本地或远程工作模式,相当于ls命令)
    在这里插入图片描述

工作模式

本地(Local)数据传输模式

​ Rsync地本地数据传输模式,很类似于CP本地复制命令,可以实现文件、目录的移动备份等功能,所不同的是Rsync有增量复制的功能。

远程(Shell)数据传输模式

​ 远程Shell数据传输模式一般是借助通道(SSH)在两台服务器之间进行复制数据,这两台服务器之间是对等的,没有客户端与服务端之分,整个过程类似于SCP远程复制命令,所不同的是Rsync有增量复制的功能,但缺少SCP的加密复制功能。

​ 可以使用rcprshSSH等方式来配合进行隧道加密传输文件。

守护进程(Daemon)传输模式

​ 守护进程传输模式是在客户端与服务端之间进行数据复制的,通常需要服务端部署守护进程服务,然后在客户端执行命令,实现数据的拉取和推送复制。

本地数据传输模式

语法:

img

作为本地复制命令应用

复制本地文件hosts到tmp目录

[root@rsync ~]# rsync  /etc/hosts  /tmp### 
etc/hosts是需要复制的文件路径
tmp是保存文件的路径

本地目录的复制本地html目录到temp

[root@rsync ~]# rsync  -r  /html  /temp###
-r表示对子目录以递归模式传输,即目录下的所有目录都同样传输

作为本地删除数据命令应用

清空目tmp目录内容

[root@rsync ~]# rsync  -r  --delete  /opt/null/  /tmp###
--delete表示对tmp目录进行清除清空

清空file.txt文件内容

[root@rsync ~]# rsync  -r  --delete  /tmp/null.txt  file.txt###
null.txt是一个空文件
使用null.txt空文件清空目标文件的内容

作为本地查询数据命令

查询hosts文件信息

[root@rsync ~]# rsync  /etc/hosts 

查询目录信息

[root@rsync ~]# rsync  /etc

远程数据传输模式

语法

img

img

利用拉取模式从远端服务器把/etc/hosts复制到本地/tmp目录

[root@rsync ~]# rsync -av -e 'ssh -p 22' root@192.168.100.20:/etc/hosts /tmp###
如果ssh端口是默认的22,命令中的-e 'ssh -p 22'可以省略

利用推送模式从本地服务器把/etc/hosts复制到远端主机的/tmp目录

[root@rsync ~]# rsync -av /etc/hosts root@192.168.100.20:/tmp###
采用远程Shell数据传输模式,每次都需要输入远程主机密码,无法实现免密交互
可以配合SSH key免密码登录来完成数据免交互同步

守护进程传输模式

语法:

img

img

img

img

从客户端同步/etc目录到Rsync服务器端指定的目录

方法一:

[root@rsync ~]# rsync -avzp /etc rsync_backup@192.168.100.10::backup --password-file=/etc/rsync.password###
/etc:表示要推送的本地文件目录
rsync_backup:表示同步数据的虚拟认证用户
@192.168.100.10::backup:表示要推送的目的地,IP地址及模块名称
双冒号后面的backup是/etc/rsyncd.conf配置文件中的模块名,而非目录名
password-file:表示客户端本地密码文件

方法二:

[root@rsync ~]# export RSYNC_PASSWORD=oldboy
[root@rsync ~]# rsync -avzp /etc rsync_backup@192.168.100.10::backup###
export……表示用于设置环境变量 RSYNC_PASSWORD 的值为 oldboy,以便在需要身份验证的rsync操作时不必人工输入密码(注意是临时的)

从服务器端指定的目录下所有拉取文件到本地客户端/opt目录

[root@rsync ~]# rsync -avz rsync_backup@192.168.100.10::backup /opt/ --password-file=/etc/rsync.password

从服务器端拉取指定模块下的指定目录或文件

[root@rsync ~]# rsync -vzrtopg rsync_backup@192.168.100.10::backup/etc/hosts /opt \ --password-file=/etc/rsync.password

客户端命令参数选项

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

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

-a:归档模式,表示以递归方式传输文件,并保持所有文件属性

-r:对于目录以递归模式传输,及目录下的所有目录都同样传输

-t:保持文件时间信息

-o:保持文件属性主信息

-p:保持文件权限

-g:保持文件属性组信息

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

-D:保存设备文件信息

-l:保留软连接

-e:使用的信道协议,指定替代rsh的Shell程序。例如:SSH

--exclude-from=file:文件名所在的目录文件,即可实现排除多个文件(和tar参数一样)

--exclude=PATTERN:指定排除不需要传输的文件信息(和tar参数一样)

--bwlimit=RATE:限速功能但是KB/S

--delete:让目标目录SRC和源目录数据DST一致,即无差异同步数据

连接

-e:使用的信道协议,指定替代rsh的Shell程序。例如:SSH

--exclude-from=file:文件名所在的目录文件,即可实现排除多个文件(和tar参数一样)

--exclude=PATTERN:指定排除不需要传输的文件信息(和tar参数一样)

--bwlimit=RATE:限速功能但是KB/S

--delete:让目标目录SRC和源目录数据DST一致,即无差异同步数据


下期预告:守护进程传输模式实践,搭建Rsync服务,实现客户端与服务端之间拉取和推送复制

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/644128.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

可解释的图像分类,提高组织表征的可信度论文速读

Explainable Image Classification with Improved Trustworthiness for Tissue Characterisation 摘要 机器学习模型进行组织表征可以帮助决策并指导安全的肿瘤切除。为了让外科医生信任该模型,需要提供生成的预测的可解释性。对于图像分类模型,像素归…

sudo的设置

sudo指令就是提高你的用户权限,用来完成root可以完成的工作,但是有一个前提,就是被root添加到信任名单中,接下来我们要讲解如何在root中添加用户到信任名单中。 在root中输入指令: 即可到达添加信用列表的位置&#x…

[图解敏捷口号]普天之下皆我妈-01-新手一次走两步

0 00:00:00,830 --> 00:00:03,750 今天我们来看一句敏捷口号 1 00:00:04,030 --> 00:00:05,660 后面我们会 2 00:00:06,300 --> 00:00:09,570 列一些比较幼稚的口号 3 00:00:09,970 --> 00:00:11,145 一句一句 4 00:00:11,145 --> 00:00:12,790 我们来剖析一…

软件3班20240424_2

package com.yanyu;import java.util.ResourceBundle;public class DBTest {// psvmpublic static void main(String[] args) { // 格式化 ctrl alt l // RBResourceBundle bundle ResourceBundle.getBundle("com/yanyu/db"); // CTRL a…

【注解】Mapper的注解 @Mapper、@Repository、@MapperScan

Mapper的注解 Mapper、Repository、MapperScan 一、Mapper1.1、主要作用1.2、示例 二、Repository2.1、主要作用2.2、示例2.3、注意事项 三、MapperScan Mapper 是 Mybatis 的注解,和 Spring 没有关系, Repository 是 Spring 的注解,用于声明…

勾八头歌之RNN

一、RNN快速入门 1.学习单步的RNN:RNNCell # -*- coding: utf-8 -*- import tensorflow as tf# 参数 a 是 BasicRNNCell所含的神经元数, 参数 b 是 batch_size, 参数 c 是单个 input 的维数,shape [ b , c ] def creatRNNCell(a,b,c):# 请在此添加代码…

【复现代码——环境配置】

目录 一、复现代码举例二、创建环境——选择一个Python版本2.1 创建基本环境2.1.1 基于AutoDL2.1.2 基于PyCharm 2.2 终端激活环境2.3 退出环境2.4 删除环境 三、PyTorch安装3.1 查看cuda3.2 安装PyTorch 四、其他依赖安装4.1 tensorboardX4.2 matplotlib4.3 medpy4.4 visdom4.…

【Day 8】MySQL 多表查询 + Mybatis 基础

1 多表查询 笛卡尔积:在数学中,两个集合(A集合 和 B集合)的所有组合情况 在多表查询时,需要消除无效的笛卡尔积 select * from tb_emp,tb_dept where dept_id tb_dept.id;多表查询分为: 连接查询 内连接:相当于查…

5-内核开发-/proc File System 学习

5-内核开发-/proc File System 学习 课程简介: Linux内核开发入门是一门旨在帮助学习者从最基本的知识开始学习Linux内核开发的入门课程。该课程旨在为对Linux内核开发感兴趣的初学者提供一个扎实的基础,让他们能够理解和参与到Linux内核的开发过程中。…

移动零 ----双指针

题目链接 题目: 分析: 上述题目, 是将数组分块, 分为前半非零, 后半零, 这种数组分块题我们首先想到双指针 思路: 定义两个指针, 一个cur 一个dest, cur用来遍历数组, dest 指向分界处的第一个零位置, 将数组分块首先让cur 0; dest 0;cur 遍历数组, 如果cur 0, 那么cur…

python+django校园社交高校交友网站2x7r5.

本课题使用Python语言进行开发。代码层面的操作主要在PyCharm中进行,将系统所使用到的表以及数据存储到MySQL数据库中,方便对数据进行操作本课题基于WEB的开发平台,设计的基本思路是: 前端:vue.jselementui 框架&#…

后端工程师——Java工程师岗位要求

在国内,Java 程序员是后端开发工程师中最大的一部分群体,其市场需求量也是居高不下,C++ 程序员也是热门岗位之一,此二者的比较也常是热点话题,例如新学者常困惑的问题之一 —— 后端开发学 Java 好还是学 C++ 好。读完本文后,我们可以从自身情况、未来的发展,岗位需求量…