rsync 远程同步----------安全高效的异地备份策略

目录

一、rsync介绍

rsync和cp的区别

rsync和scp的区别

二、rsync同步方式

rsync备份的方式

三、配置rsync源服务器

①本地复制

②下行同步

③上行同步

四、常用Rsync命令

五、配置源的两种表达方法

六、部署rsync下行同步

①环境准备

②配置rsync源服务器-----------(192.168.246.8)

1)修改rsync配置文件

2)为备份账户创建数据文件

3)保证所有用户对源目录/var/www/html 都有读取权限

4)启动 rsync 服务程序

③客户端(发起端)配置 --------(192.168.246.9)

1)rsync同步

2)在服务器写入文件,测试数据

3)再去客户端测试同步文件

4)免密登录

5) 删除文件,同步更新

服务器删除文件

客户端同步测试 

七、定时同步crontab + rsync


一、rsync介绍

rsync(Remote Sync,远程同步) 是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。

rsync和cp的区别

cp   将我们的源文件完整的复制 到 指定路径下即 “全备”

rsync做本地复制的话:①首先它会将源文件和目标位置的文件对比,找出差异部分

                                       ②根据目的位置的文件与源文件差异的部分,进行一致性的同步

rsync和scp的区别

两者都可以实现远程传输文件和目录

rsync:远程文件同步,可以实现跨主机增量同步文件数据,

              同时还能对传输的文件进行压缩,

              并且支持软连接硬连接文件传输

scp:只能做全量数据传输

rsync默认端口为 873

rsync特性:

  • 可以在不同主机之间镜像同步整个目录树,
  • 支持增量备份、保持链接和权限、时间、属性且传输前自动执行压缩、
  • rsync不需要特殊权限即可安装,centos系统默认安装,
  • 支持匿名传输,注意发起端要有对应目录位置的读权限

在远程同步任务中,

  • 负责发起rsync同步操作的客户机称为发起端
  • 而负责响应来自客户机的rsync同步操作的服务器称为同步源
  • 在同步过程中,同步源负责提供文件的原始位置,
  • 发起端应对该位置具有读取权限。

Rsync 是 Linux 系统下的数据镜像备份工具,使用快速增量备份工具 Remote Sync 可以远程同步, 可以在不同主机之间进行同步,可实现全量备份与增量备份,保持链接和权限,且采用优化的同步算法, 传输前执行压缩,因此非常适合用于架构集中式备份或异地备份等应用。同时Rsync支持本地复制,或者与其他 SSH、rsync 主机同步

rsync 的 官方网站:https://rsync.samba.org/

二、rsync同步方式

(1)完整备份:每次备份都是从备份源将所有的文件或目录备份到目的地。 
(2)差量备份:备份上次完全备份以后有变化的数据(他针对的上次的完全备份,他备份过程中不清除存档属性)。
(3)增量备份:备份上次备份以后有变化的数据(他才不管是那种类型的备份,有变化的数据就备份,他会清除存档属性)

rsync备份的方式

1、发起端:负责rsync  同步操作的客户机叫做发起端,通知服务器我要备份你的数据
2、备份源:负责响应来自客户机rsync   同步操作的服务器叫做备份源,需要备份的服务器
3、服务端:运行rsyncd服务,一般来说,需要备份的服务器
4、客户端:存放备份数据

三、配置rsync源服务器

在远程同步任务中,负责发起 rsync 同步操作的客户机称为发起端,而负责响应来自客 户机的 rsync 同步操作的服务器称为同步源

在同步过程中,同步源负责提供文件的原始位置,发起端应对该位置具有读取权限

如图下图所示 同步源也叫备份源、响应端  客户端一般存放备份的数据)

①本地复制

首先是将源文件和目的位置文件对比找出差异,然后将源文件与目的位置的差异部分进行一致性同步。

②下行同步

客户端与服务端同步内容,可以理解为客户端从服务器上下载内容

③上行同步

服务端与客户端同步内容,可以理解为客户端将内容上传到服务器

四、常用Rsync命令

基本格式:rsync [选项] 原始位置 目标位置

常用选项:

选项作用
-r递归模式,包含目录及子目录中的所有文件
-l对于符号链接文件仍然复制为符号链接文件
-v显示同步过程的详细(verbose)信息
-z在传输文件时进行压缩(compress)
-a归档模式,保留文件的权限、属性等信息,等同于组合选项“-rlptgoD”
-p保留文件的权限标记
-t保留文件的时间标记
-g保留文件的属组标记(仅超级用户使用)
-o保留文件的属主标记(仅超级用户使用)
-H保留硬连接文件
-A保留 ACL 属性信息
-D保留设备文件及其他特殊文件
--delete删除目标位置有而原始位置没有的文件
--checksum根据校验和(而不是文件大小、修改时间)来决定是否跳过文件
password-filepassword-file=密码文件位置,可以在同步时使用免交互登录

五、配置源的两种表达方法

格式一: rsync -avz 用户名@主机地址::共享模块名 文件
 示例  :rsync -avz backuper@192.168.10.22::wwwroot /opt/

格式二:rsync -avz rsync://用户名(rsync用户)@主机地址/共享模块名 文件
  示例: rsync -avz rsync://backuper@192.168.10.22/wwwroot /opt/

六、部署rsync下行同步

①环境准备

客户端ip服务端ip
192.168.246.9192.168.246.8

前提首先关闭防火墙和增强功能

[root@localhost ~]#systemctl stop firewalld
[root@localhost ~]#setenforce 0

②配置rsync源服务器-----------(192.168.246.8)

rpm -q rsync								#一般系统已默认安装rsync
-------------------------------------------------------------------
vim /etc/rsyncd.conf                 #编辑rsync服务配置文件  #添加以下配置项
-------------------------------------------------------------------
uid = root  #用户id,注意不用root使用rsync同步时可能会报错
gid = root  #组id,注意不用root使用rsync同步时可能会报错
use chroot = yes  #禁锢在源目录,只允许模块授权的源路径
pid file = /var/run/rsyncd.pid  #存放进程 ID 的文件位置
log file = /var/log/rsyncd.log  #日志文件位置
address =192.168.246.8  #监听的地址即server地址
port = 873    #监听端口 tcp/udp 873,可通过cat /etc/services | grep rsync查看
hosts allow = 192.168.246.0/24  #允许访问的客户机地址
dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2  #同步时不再压缩的文件类型

 [wwwroot]  #共享模块名称,可自定义
path = /var/www/html  #源目录的实际路径
comment = Document root of www.nanjing.com  #模块说明,随便写
read only = yes  #是否为只读
auth users = sbk  khui  #授权账户,多个账号以空格分隔
secrets file = /etc/rsyncd_users.db  #存放账户信息的数据文件

1)修改rsync配置文件

如采用匿名的方式,只要将其中的“auth users”和“secrets file”配置项去掉即可。

2)为备份账户创建数据文件
[root@localhost etc]#vim /etc/rsyncd_users.db
[root@localhost etc]#cat /etc/rsyncd_users.db
sbk:123123
khui:123123

3)保证所有用户对源目录/var/www/html 都有读取权限
[root@localhost ~]#chmod 600 /etc/rsyncd_users.db
[root@localhost ~]#mkdir -p  /var/www/html
[root@localhost ~]#chmod +r /var/www/html/
[root@localhost ~]#ls -ld /var/www/html/

4)启动 rsync 服务程序

#启动 rsync 服务,以独立监听服务的方式(守护进程)运行

[root@localhost ~]#rsync --daemon

如果你要关闭 rsync 服务,可以采用如下方法,二选一就可以

关闭 rsync 服务
kill $(cat /var/run/rsyncd.pid)

rm -rf /var/run/rsyncd.pid

此处不关闭服务哦,继续后续操作

③客户端(发起端)配置 --------(192.168.246.9)

#将指定的资源下载到本地/opt 目录下进行备份。
格式一:
rsync -avz backuper@192.168.10.18::wwwroot /opt/                    #密码123123

格式二:
rsync -avz rsync://backuper@192.168.10.18/wwwroot /opt/

1)rsync同步
[root@localhost ~]#mkdir -p /opt/ky66
[root@localhost ~]#
[root@localhost ~]#rsync -avz sbk@192.168.246.8::wwwroot /opt/ky66/

2)在服务器写入文件,测试数据

3)再去客户端测试同步文件

4)免密登录
[root@localhost ~]#echo "123123" > /etc/server.pass
[root@localhost ~]#chmod 600 /etc/server.pass

rsync -avz --password-file=/etc/server.pass sbk@192.168.246.8::wwwroot /opt/ky66

若免密同步失败需要先在client上ssh一下server登录再退出

再在服务器端输入b.txt

再去客户端使用rsync同步后查看

5) 删除文件,同步更新
服务器删除文件

客户端同步测试 

解决文件同步 

达到了客户端和服务器删除文件的一致性

七、定时同步crontab + rsync

crontab -e
30 22 * * * /usr/bin/rsync -az --delete --password-file=/etc/server.pass backuper@192.168.10.18::wwwroot /opt/
#为了在同步过程中不用输入密码,需要创建一个密码文件,保存 backuper 用户的密码,如 /etc/server.pass。在执行 rsync 同步时使用选项 “--password-file=/etc/server.pass” 指定即可。

systemctl restart crond
systemctl enable crond

温故而知新

一种方式,用rsync同步内容

还有另一种方式,用ssh同步内容

rsync -az 原始位置 目标位置
         

方法一: 用户名@ip::共享模块名 rsync -avz sbk@192.168.246.8::wwwroot /opt/ky66 
         
方法二: rsync://用户名@IP/共享模块名 rsync -avz rsync://sbk@192.168.246.8/wwwroot /opt/ky66
 
rsync -avz -e "ssh -p ssh端口号" 原始位置  目标位置
 
rsync -avz -e "ssh -p 22" root@192.168.246.8"/var/www/html /opt

rsync

文件传输:lrzsz   ftp   samba   cifs   nfs   sftp   scp   WinSCP    rsync   SVN   git  
 
rsync 远程文件同步,可实现跨主机增量同步文件数据
 
命令格式:
rsync [选项] 原始位置  目标位置
 
rsync -az --delete  源服务器位置   本地位置         #下行同步,从源服务器拉数据
rsync -az --delete  本地位置       源服务器位置     #上行同步,推数据到源服务器
 
 
免交互
#rsync-daemon方式
rsync -az --delete --password-file=密码文件   用户名@源服务器地址::共享模块名   本地目录
rsync -az --delete --password-file=密码文件   rsync://用户名@源服务器地址/共享模块名   本地目录
 
#rsync-ssh方式
rsync -az --delete -e 'sshpass -p 'ssh密码' ssh -p ssh端口 -o StrictHostKeyChecking=no'  用户名@源服务器地址:共享目录/   本地目录
 
先做ssh密钥对免交互(空密码,ssh-agent bash + ssh-add)
rsync -az --delete -e 'ssh -p ssh端口'  用户名@源服务器地址:共享目录/   本地目录

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

白盒测试-语句覆盖

​ 语句覆盖法是指设计适当数量的测试用例,使被测程序中的每条语句至少被执行一次。语句覆盖率的计算方法为: ​ 至少被执行一次的语句数量 / 程序中可执行的语句总数。 案例 ​ 为了清晰地比较几种逻辑覆盖法设计测试用例的异同,逻辑覆盖…

【前沿模型解析】潜在扩散模型 2-1 | 手撕感知图像压缩 基础块ResNet块

文章目录 1 残差结构回顾2 LDM结构中的残差结构设计2.1 组归一化GroupNorm层2.2 激活函数层2.3 卷积层2.4 dropout层 3 代码实现 1 残差结构回顾 残差结构应该是非常重要的基础块之一了,你肯定会在各种各样的网络模型结构里看到残差结构,他是非常强大的…

二叉搜索树、AVL树、红黑树

为者常成,行者常至 文章目录 二叉搜索树节点查找插入重头戏——删除叶子节点只有一个子节点有两个子节点 分析 平衡二叉搜索树右单旋左右双旋插入的四种情况左左右右左右右左插入操作 小结 红黑树 二叉搜索树 二叉搜索树就是在二叉树的基础上增加一些规则&#xff…

【LeetCode】排序数组——不一样的方式实现快排

目录 题目链接 颜色分类 算法原理 代码实现 排序数组 算法原理 代码实现 最小的k个数 算法原理 代码实现 题目链接 LeetCode链接:75. 颜色分类 - 力扣(LeetCode) LeetCode链接:912. 排序数组 - 力扣(L…

【三十七】【算法分析与设计】STL 练习,凌波微步,栈和排序,吐泡泡,[HNOI2003]操作系统,优先队列自定义类型

凌波微步 链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 时间限制:C/C 1 秒,其他语言 2 秒 空间限制:C/C 32768K,其他语言 65536K 64bit IO Format: %lld 题目描述 小 Z 的体型实在是太胖了&…

【论文复现|智能算法改进】改进猎人猎物优化算法在WSN覆盖中的应用

目录 1.算法原理2.改进点3.结果展示4.参考文献 1.算法原理 【智能算法】猎人猎物算法(HPO)原理及实现 【智能算法应用】猎人猎物优化算法(HPO)在WSN覆盖中的应用 2.改进点 差分进化 自适应α变异 全局最优引导的动态反向学…

中仕公考:2024年成人高考大专能考事业编吗?

关于2024年成人高考大专学历是否具备报考事业单位编制的资格,相关规定明确地指出,该学历符合国家认证标准,并可在学信网进行验证。持有成人高考大专学历的考生,在满足其他职位需求的条件下,是有资格参加事业编考试的。…

VIM支持C/C++/Verilog/SystemVerilog配置并支持Win/Linux环境的配置

作为一个芯片公司打杂人口,同时兼数字IC和软件,往往需要一个皮实耐打上天入地的编辑器… 一、先附上github路径,方便取走 git clone gitgithub.com:qqqw4549/vim_config_c_verilog.git 二、效果展示 支持ctrl]函数/模块跳转,支持…

书生·浦语大模型实战营之茴香豆:搭建你的 RAG 智能助理

书生浦语大模型实战营之茴香豆:搭建你的 RAG 智能助理 RAG(Retrieval Augmented Generation)技术,通过检索与用户输入相关的信息,并结合外部知识库来生成更准确、更丰富的回答。解决 LLMs 在处理知识密集型任务时可能遇…

学习CSS Flexbox 玩flexboxfroggy flexboxfroggy1-24关详解

欢迎来到Flexbox Froggy,这是一个通过编写CSS代码来帮助Froggy和朋友的游戏! justify-content 和 align-items 是两个用于控制 CSS Flexbox 布局的属性。 justify-content:该属性用于控制 Flexbox 容器中子项目在主轴(水平方向)…

C++算法 —— 位运算

一、基本的位运算操作 1.基础位运算操作符 << : 二进制位整体左移 >> : 二进制位整体右移 ~ : 按位取反 & &#xff1a; 按位与 | &#xff1a; 按位或 ^ : 按位异或 &#xff08;无进位相加&#xff09; 2.给一个数n&#xff0c;确定它的二进制表示中第…

聚类算法 | Kmeans:肘方法、Kmeans++、轮廓系数 | DBSCAN

目录 一. 聚类算法划分方式1. 划分式2. 层次式3. 基于密度4. 基于网络5. 基于模型 二. K-means算法1. K-means算法公式表达2. K-means算法流程3. Kmeans算法缺点3.1 肘方法3.2 k-means 算法3.2.1 k-means|| 算法 3.3 Mini Batch K-Means 算法 4. 聚类评估 三. DBSCAN算法1. DBS…

秋招学习数据库LeetCode刷题

数据库基本知识以前学过次数较多&#xff0c;今天看完一遍后都是可以理解的。直接刷Leetcode题吧 牛客上题库刷基础&#xff0c;Leetcode刷 写语句题(争取坚持每日2个sql语句题) 牛客&#xff1a;https://www.nowcoder.com/exam/intelligent?questionJobId10&tagId21015 L…

C#速览入门

C# & .NET C# 程序在 .NET 上运行&#xff0c;而 .NET 是名为公共语言运行时 (CLR) 的虚执行系统和一组类库。 CLR 是 Microsoft 对公共语言基础结构 (CLI) 国际标准的实现。 CLI 是创建执行和开发环境的基础&#xff0c;语言和库可以在其中无缝地协同工作。 用 C# 编写的…

私域必备神器来袭!朋友圈转发一键搞定!

在私域运营中&#xff0c;朋友圈的转发和管理是至关重要的环节。为了能够更好的管理和运营多个微信号的朋友圈&#xff0c;很多人都开始使用微信管理系统来辅助自己开展管理和运营工作。 接下来&#xff0c;就一起来看看微信管理系统的朋友圈管理功能吧&#xff01; 首先&…

π162U31 增强ESD功能,3.0kVrms隔离电压150kbps 六通道数字隔离器 可提高工业应用系统性能

π162U31产品概述&#xff1a; π162U31是一款数字隔离器&#xff0c;π162U31数字隔离器具有出色的性能特 征和可靠性&#xff0c;整体性能优于光耦和基于其他原理的数字隔离器 产品。 智能分压技术(iDivider技术)利用电容分压原理&#xff0c; 在不需要调制和解调的情况下&a…

【测试开发学习历程】python流程控制

前言&#xff1a;写到这里也许自己真的有些疲惫了&#xff0c;但是人生不就是像西西弗斯推石上山一样的枯燥乏味吗&#xff1f; 在python当中的流程控制主要包含以下两部分的内容&#xff1a; 条件判断 循环 1 条件判断 条件判断用if语句实现&#xff0c;if语句的几种格式…

【研发管理】产品经理知识体系-数字化战略

导读: 数字化战略对于企业的长期发展具有重要意义。实施数字化战略需要企业从多个方面进行数字化转型和优化&#xff0c;以提高效率和创新能力&#xff0c;并实现长期竞争力和增长。 目录 1、定义 2、数字化战略必要性 3、数字战略框架 4、数字化转型对产品和服务设计的影响…

京东云轻量云主机8核16G配置租用价格1198元1年、4688元三年

京东云轻量云主机8核16G服务器租用优惠价格1198元1年、4688元三年&#xff0c;配置为8C16G-270G SSD系统盘-5M带宽-500G月流量&#xff0c;华北-北京地域。京东云8核16G服务器活动页面 yunfuwuqiba.com/go/jd 活动链接打开如下图&#xff1a; 京东云8核16G服务器优惠价格 京东云…

截稿倒计时 CCF-B 推荐会议EGSR’24论文摘要4月9日提交

会议之眼 快讯 第35届EGSR 2024 (Eurographics Symposium on Rendering)即欧洲图形学渲染专题讨论会将于 2024 年 7月3日-5日在英国伦敦帝国理工学院举行&#xff01;在EGSR之前&#xff0c;将有一个全新的联合研讨会&#xff0c;即材料外观建模&#xff08;MAM&#xff09;和…