Rsync远程同步详细介绍

一、rsync介绍


        rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具。并且可以不进行改变原有数据的属性信息,实现数据的备份迁移特性。
rsync软件支持跨平台,适用于unix/ linux/windows等多种操作系统平台。rsync是一个快速和非常方便的文件复制工具。它能本地复制,远程复制,或者远程守护进程方式复制,它提供了大量的参数来控制其行为的各个方面,并且允许非常灵活的方式来实现文件的传输复制,以其delta-transfer算法闻名。

  • rsync监听端口:873
  • rsync运行模式:C/S

rsync同步方式

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

rsync的特性

  • 可以镜像保存整个目录和文件系统
  • 可以很容易做到保持原文件的权限、时间、软硬连接等
  • 无须特殊权限即可安装

二 安装

  准备两台虚拟机

关闭防火墙都执行

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl disable firewalld
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.

安装让rsync

[root@localhost ~]# yum install -y  rsync

 编辑/etc/rsyncd.conf文件

[root@localhost conf.d]# cat /etc/rsyncd.conf
# /etc/rsyncd: configuration file for rsync daemon mode# See rsyncd.conf man page for more options.# configuration example:# uid = nobody
# gid = nobody
# use chroot = yes
# max connections = 4
# pid file = /var/run/rsyncd.pid
# exclude = lost+found/
# transfer logging = yes
# timeout = 900
# ignore nonreadable = yes
# dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2# [ftp]
#        path = /home/ftp
#        comment = ftp export area
uid = root
gid = root
use chroot = yes
address = 192.168.58.156
port = 874
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
hosts allow = 192.168.58.0/24[nginxconf]path = /etc/nginx/conf.dcomment = Nginx Configuration Filesread only = nolist = yesauth users = backupersecrets file = /etc/server.pass

编辑/etc/server.pass密码文件

[root@localhost conf.d]# cat /etc/server.pass
backuper:123123
chmod 600 /etc/server.pass

 启动rsync服务

[root@localhost conf.d]# systemctl start rsyncd
[root@localhost conf.d]# systemctl status rsyncd

测试

rsync -az --delete --password-file=/etc/server.pass /etc/nginx/conf.d/ backuper@192.168.58.156::nginxconf

在目标主机上查看配置文件是否传输成功

如果你正在开发web系统界面,可以使用Flask将传输功能集成到web系统上 

@app.route('/sync_configs', methods=['POST'])
def sync_configs():command = ["/usr/bin/rsync",  # 替换为实际的 rsync 路径"-az","--delete","--password-file=/etc/server.pass","/etc/nginx/conf.d/","backuper@192.168.58.156::nginxconf"]try:result = subprocess.run(command, check=True, capture_output=True, text=True)return {"message": "同步成功", "output": result.stdout}except subprocess.CalledProcessError as e:return {"error": str(e)}, 500

 

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

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

相关文章

Spring Cloud OpenFeign:基于Ribbon和Hystrix的声明式服务调用

Spring Cloud OpenFeign:基于Ribbon和Hystrix的声明式服务调用 Spring Cloud OpenFeign是一个声明式的服务调用框架,基于Feign并整合了Ribbon和Hystrix;目标是简化分布式系统中编写服务间调用的代码,并提供一种更加优雅和便捷的方…

Vue项目打包部署与路由配置深度解析

在Vue.js项目的开发和部署过程中,配置打包路径和路由模式是两个至关重要的环节。下面,我们将详细探讨如何根据需求将Vue项目打包部署到域名的根路径或二级路径,并深入解析hash路由与history路由的配置方法。 一、Vue项目打包部署 1. 配置vue.…

无人机之自动控制原理篇

一、飞控系统 无人机飞控是指无人机的飞行控制系统,是无人机的大脑。飞控系统通过传感器、控制器和执行机构三部分实现对无人机的自动控制。 传感器:传感器负责收集无人机的姿态、速度、高度等信息。常见的传感器包括陀螺仪、加速度计、磁力计、气压计、…

得物App获评新奖项,正品保障夯实供应链创新水平

近日,得物App再度获评新奖项——“2024上海市供应链创新与应用优秀案例”。 本次奖项为上海市供应链领域最高奖项,旨在评选出在供应链创新成效上处于领先地位、拥有成功模式和经验的企业。今年以来,得物App已接连获得“上海市质量金奖”、“科…

STM32F103C8T6学习笔记3--按键控制LED灯

1、实验内容 S4、S5分别接PB12和PB13,实验要求,按下S4,D1亮,D2灭;按下S5,D2亮,D1灭。 由于按键学习的是GPIO口的输入功能,和输出功能的配置略有区别。本次通过按键触发相应功能没有…

10.27复习day —— 药销系统分页前(上)

登陆界面 1.auto 水平方向 —— 占据尽量多的空间 margin:auto —— 水平居中 2.块状:block main、div、p 特点: 独占一行 水平方向占满父元素可用空间(所以得设置宽度) 垂直方向占据空间由其内容大小决定 行内:inlin…

如何理解Js中闭包

闭包(Closure)是JavaScript中的一个重要概念,它指的是函数能够记住并访问它的词法作用域(lexical scope),即使这个函数在其词法作用域之外执行。简而言之,闭包允许你从内部函数访问外部函数的变…

clickhouse运维篇(三):生产环境一键生成配置并快速部署ck集群

前提条件:先了解集群搭建流程是什么样,需要改哪些配置,有哪些环境,这个文章目的是简化部署。 clickhouse运维篇(一):docker-compose 快速部署clickhouse集群 clickhouse运维篇(二&am…

快速入门kotlin编程(精简但全面版)

注:本文章为个人学习记录,如有错误,欢迎留言指正。 目录 1. 变量 1.1 变量声明 1.2 数据类型 2. 函数 3. 判断语句 3.1 if 3.2 when语句 4. 循环语句 4.1 while 4.2 for-in 5. 类和对象 5.1 类的创建和对象的初始化 5.2 继承 5…

云原生Istio基础

一.Service Mesh 架构 Service Mesh(服务网格)是一种用于处理服务到服务通信的专用基础设施层。它的主要目的是将微服务之间复杂的通信和治理逻辑从微服务代码中分离出来,放到一个独立的层中进行管理。传统的微服务架构中&#x…

Android -- 调用系统相册之图片裁剪保存

前言 最近线上反馈,部分vivo手机更换头像时调用系统相册保存图片失败,经本人测试,确实有问题。 经修复后,贴出这块的代码供小伙伴们参考使用。 功能 更换头像选择图片: 调用系统相机拍照,调用系统图片…

【Linux刷题练习】

题目 1 题目:Linux 文件权限 -rwxr-xr-x 是什么意思,怎样变更文件夹以及下面所有文件的拥有者? 正确答案:A 知识点: 文件权限: -rwxr-xr-x 表示文件权限: 第一个 - 表示文件类型,…

Android:ViewPaper动态添加移除第一页

问题: 动态改变itemList之后,调用notifyDataSetChanged();没有作用。 原因: 原因是PagerAdapter内部的getItemPosition方法获取的值是固定POSITION_UNCHANGED,表示未改变,所以不更新。 解决: 要更新则…

嵌入式——STM32外设应用

STM32 微控制器以其高性能、低功耗和丰富的外设资源,在嵌入式系统设计中得到了广泛应用。以下将详细介绍 STM32 的主要外设及其典型应用,帮助开发者更好地理解和应用这些功能。 1. GPIO(通用输入输出端口) 功能:GPIO…

【网页布局技术】项目五 使用CSS设置导航栏

《CSSDIV网页样式与布局案例教程》 徐琴 目录 任务一 制作简单纵向导航栏支撑知识点1.合理利用display:block属性2.利用margin-bottom设置间隔效果3.利用border设置特殊边框 任务二 制作简单横向导航栏任务三 制作带图片效果的横向导航栏任务…

C++集合运算函数总结-

集合必须是有序的, merge:将两个有序范围合并到一个新的有序范围中。 set_union:将两个有序集合的并集存储到第三个集合中。 set_difference:将第一个有序集合中不在第二个有序集合中的元素存储到第三个集合中。 set_symmetri…

LeetCode20:有效的括号

原题地址:. - 力扣(LeetCode) 题目描述 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合…

架构师之路-学渣到学霸历程-33

Nginx的常用命令 nginx的重点在于配置文件,但是我们也得懂得这些命令怎么使用的; 先了解一下nginx的命令;如下面笔记~! 1、Nginx命令 Nginx的命令: 如果用yum安装的话,默认会添加到PATH路径如果用源码安…

银河麒麟v10 xrdp安装

为了解决科技被卡脖子的问题,国家正在大力推进软硬件系统的信创替代,对于一些平时对Linux操作系统不太熟练的用户来讲提出了更高的挑战和要求。本文以银河麒麟v10 24.03为例带领大家配置kylin v10的远程桌面。 最近公司为了配置信创开发新购了几台银河麒…

什么是x86架构,什么是arm架构

什么是 x86 架构? x86 架构是一种经典的指令集架构(ISA),最早由英特尔在 1978 年推出,主要用于 PC、服务器等领域。 它是一种复杂指令集计算(CISC)架构,支持大量的复杂指令和操作&…