Rsync学习笔记1

news2025/1/14 3:42:11

企业架构Web服务器的文件及时同步:

1)能够理解为何要服务器的文件同步;

2)能够简单描述实现文件同步的几种方式;

3)能够实现服务器文件实时同步的案例;

服务器同步文件的必要性:

当业务代码发生改变,上传到web服务器的时候,因为架构已经不是单台服务器提供服务,而是由多台Web服务器提供服务,业务代码需要同时上传到多台Web服务器,在操作上带来了很多不便。

故需要解决以上问题,就需要Web服务器中的业务代码能够及时同步,保证业务代码的一致性。

线上

对外提供服务的 10台 提供给用户对外服务 存储(分布式存储 解决服务器单例硬盘资源不够的情况)

线下:能够让线上更稳定提供服务的。

代码发布(CI CD git、jenkins、gitlab)版本管理;

灰度发布

监控(主机、服务 zabbix)zabbix-proxy;哪个机器出问题,能被监控,有告警;

日志收集分析ELK elasticsearch(elasticsearch-head) logstash kibana kafka消息队列)日志信息能看到;

存储:ceph 目的是是为了存储数据和文件;分布式存储,解决服务器单列硬盘资源不够的情况。

几百T的硬盘。多个服务器同时去存储。有个存储软件来管理。

NFS、Samba。

同步文件的几种方式:

1)SCP  secure copy的缩写,安全的复制,scp是Linux系统下基于SSH登录进行安全的远程文件拷贝命令,全量同步。

ssh包含哪几个组件:ssh scp sftp

问题:全部复制过去,比较慢、效率低一些,scp不能远程删除,目标服务器垃圾越来越多。

2)rsync:

rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法==只传送两个文件的不同部分==,而不是每次都整份传送,因此速度相当快 ==增量同步==

问题:当文件变动,不能实时同步。就是说文件变动的时候,我们需要定时执行下rsync命令。

每天同步一次,每天只能发布一个版本。

3)rsync+sersync:

inotify-tools和sersync属于同类:

sersync是基于inotify+sync时大量文件的多服务器自动同步工具。

使用==Linux 2.6 内核的 inotify 监控 Linux 文件系统事件==,被监听目录下如果有文件发生修改,sersync 将通过内核自动捕获到事件,并将该文件利用 rsync 同步到多台远程服务器。sersync 仅仅同步发生增、删、改事件的单个文件或目录,不像rsync镜像同步那样需要比对双方服务器整个目录下数千万的文件对比,并且支持多线程同步,因此效率非常高

sersync主要用于服务器同步,web镜像等功能。基于boost1.43.0,inotify api,rsync command.开发

特点:

1、sersync是使用c++编写,而且对linux系统文件系统产生的临时文件和重复的文件操作进行过滤(详细见附录,这个过滤脚本程序没有实现),所以在结合rsync同步的时候,节省了运行时耗和网络资源。因此更快。

相比较上面两个项目,sersync配置起来很简单,其中bin目录下已经有基本上静态编译的

2、二进制文件,配合bin目录下的xml配置文件直接使用即可。

另外本项目相比较其他脚本开源项目,使用多线程进行同步,尤其在同步较大文件时,能够保证多个服务器实时保持同步状态。

3、本项目有出错处理机制,通过失败队列对出错的文件重新同步,如果仍旧失败,则按设定时长对同步失败的文件重新同步。

4、本项目自带crontab功能,只需在xml配置文件中开启,即可按您的要求,隔一段时间整体同步一次。无需再额外配置crontab功能。

5、本项目socket与http插件扩展,满足您二次开发的需要。

同步文件案例:

源服务器 server01    原文件所在服务器   192.168.17.107

目标服务器  server03  需要复制到的服务器  192.168.17.109

1、scp:

语法:scp本地文件路径   用户名@远程IP:远程存储路径

由于需要远程登录,故需要输入密码不是很方便,添加机器的公钥到允许列表中。

在scp命令中要特别注意下-r的选项。遍历文件夹。

每次的同步的时候还要输入密码。

那我们要做一个免密登录。

1)源服务器生成公钥。

[root@server01 public]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:FlzDszlWUrjL1tkXuVxibIQCidQlt48nqOZiz1s/jNQ root@server01
The key's randomart image is:
+---[RSA 2048]----+
|     ..oo==o..   |
|      ..o+*oo .  |
|        o .O o  .|
|         o*o  =o.|
|        S+o+o=..+|
|       o. Eoo .o.|
|      o..+     . |
|    o+ ...o      |
|   . o=.  ..     |
+----[SHA256]-----+
[root@server01 public]#

2)添加公钥到允许文件(源服务器) 

[root@server01 public]# ssh-copy-id 192.168.17.109
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.17.109's password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '192.168.17.109'"
and check to make sure that only the key(s) you wanted were added.

3)测试远程登录:

[root@server01 public]# ssh 192.168.17.109
Last login: Thu Sep 21 14:17:19 2023 from 192.168.17.1

4)测试修改业务代码:

通过scp推送同步。

scp的缺点:

不能够进行增量同步,比较浪费时间

不能够目标服务器的文件,垃圾文件越来越多。

可以把以上的代码写入到脚本中,业务代码变化之后,直接执行脚本即可。

[root@server03 tp5shop]# cat /root/filesync/scp.sh
#!/bin/bash

scp -r /usr/local/nginx/html/tp5shop root@192.168.17.109:/usr/local/nginx/html/

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

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

相关文章

求二维子数组的和(剖析)

文章目录 🐒个人主页🏅JavaSE系列专栏📖前言:本篇剖析一下二维子数组求和规则: 🐒个人主页 🏅JavaSE系列专栏 📖前言:本篇剖析一下二维子数组求和 规则: 这…

阿里员工曝光,跳槽提供流水,将28K改成38K,成功率高吗?

在这位员工的曝光中,他声称通过提供虚假简历,将自己的工作经验和技能水平夸大,以获得更高的薪资。此外,他还提供了虚假的流水,使自己的收入看起来更高。然而,这一行为无疑是违反道德和诚信原则的&#xff0…

向表中针对全部列插入数据

MySQL从小白到总裁完整教程目录:https://blog.csdn.net/weixin_67859959/article/details/129334507?spm1001.2014.3001.5502 语法格式: insert into 表名 values(); 我们来查看test01表里面有几列 mysql> show databases; -------------------- | Database …

学习记忆——宫殿篇——记忆宫殿——记忆桩——学校

教室 桶 走道 桌子 暖气 窗台 后背 窗帘 监视器 白盒子 教师 讲台 表 投影仪 音响 窗 喇叭 黑板 门 栏杆 椅子 食堂 桶 刷卡器 柱子 桌子 风扇 灯罩 一列椅子 地面 大门空间 电视 活动室 盘子 纸盒 油桶 称 水桶 展牌 帘子 消防栓 毯子 储物箱 宿舍 梯子 坐垫 挂件 吊兰 君子…

zabbix学习3--zabbix6.x-proxy

文章目录 proxy proxy # 安装mysql 8.0# 获取源码包【https://www.zabbix.com/cn/download_sources】 mkdir -p /data/zabbix_proxy/{data,install,logs,php} mkdir -p /var/run/zabbix_proxy tar xf zabbix-6.4.3.tar.gz -C /data/zabbix_proxy/install/ cd /data/zabbix_pro…

华为坤灵再上新,助力中小企业转型“易”见未来

中小企业,堪称国民经济发展的毛细血管,数量众多、分布广泛却又无比重要。 随着数字经济成为各行各业的主战场,数字化转型已是中小企业打开高质量发展之门的那把关键钥匙。《数字中国建设整体布局规划》就明确指出,推动数字技术和…

argparse的用法

目录 一、使用argparse 二、参数详解 参考 一、使用argparse argparse 模块是 Python 内置的用于命令项选项与参数解析的模块,argparse 模块可以让人轻松编写用户友好的命令行接口,能够帮助程序员为模型定义参数。 argparse定义包括四个步骤&#xff…

线路中故障电弧产生了应该如何治理?-安科瑞黄安南

故障电弧的危害 故障电弧是指由于电气线路或设备中绝缘老化破损、电气连接松动、空气潮湿、电压电流急剧升高等原因引起空气击穿所导致的气体游离放电现象。故障电弧发生时,其中心温度可高达3000 ℃左右,并伴随有金属喷溅物,足以引燃任何可燃…

【AD】【规则设置】关于绿色报错的消除

关于绿色报错的消除 1、打开 在上面工具栏的 Tools - Design Rule Checker2、这两列,分别右键 选择 Batch DRC - All Off 取消掉所有的打钩3、再点击左侧的Electrical 把右边的这几个都打钩 每天进步一点点 如果我的学习记录有帮到你,可否赏点买辣条的钱…

提高接口自动化测试效率:使用 JMESPath 实现断言和数据提取!

前言 做接口自动化,断言是比不可少的。如何快速巧妙的提取断言数据就成了关键,当然也可以提高用例的编写效率。笔者在工作中接触到了JMESPath,那到底该如何使用呢?带着疑惑一起往下看。 JMESPath是啥? JMESPath 是一…

安达发APS|生产计划部门如何提升产量?

在当下制造业中,生产计划的制定和执行对于提高产量、降低成本、保证交货期等方面具有重要意义。随着科技的发展,越来越多的企业开始使用APS生产排程软件来优化生产计划,提高生产效率。本文将从以下几个方面介绍如何利用APS生产排程软件提升产…

外滩大会观察|重估蚂蚁!

点击关注 文丨刘雨琦,编丨王一粟 “不同品种的小狗排队通过‘实名认证’、刷脸识别不仅能识别人,还能识别狗”。“人脸、虹膜、掌纹都已经不算黑科技,脑纹识别才是真的不可替代。” 2023年上海外滩大会上,6G、无人安全检测实验室…

学Python的漫画漫步进阶 -- 第十四步.网络通信

学Python的漫画漫步进阶 -- 第十四步.网络通信 十四、网络通信14.1 基本的网络知识14.1.1 TCP/IP14.1.2 IP地址14.1.3 端口14.1.4 HTTP/HTTPS 14.2 搭建自己的Web服务器14.3 urllib.request模块14.3.1 发送GET请求14.3.2 发送POST请求 14.4 JSON数据14.4.1 JSON文档的结构14.4.…

方案:TSINGSEE青犀智能分析网关皮带撕裂算法的场景应用

在工地矿山等现实场景中,皮带运输在生产过程中是必不可少的,然而,由于长时间高强度的运转,皮带很容易发生撕裂、破损、跑偏等问题。这些问题会严重影响生产速度,甚至会导致严重的安全事故。为了有效预防此类安全事故发…

短视频抖音账号矩阵系统源码开发者自研(四)

抖音是一款备受欢迎的短视频APP,拥有数亿的用户,其中包括了大量的粉丝。为了让更多的人能够发现和观看到你的视频,抖音SEO是必不可少的一环,特别是对于拥有企业或个人品牌的用户来说。在这个过程中,抖音SEO源码的开源部…

不要动 WindowsApps 文件夹的权限以及更新 win10 版本

前言: 先简单说几句,本来打算开始写论文的,装个 mathtype 到 word 中,word 的安装路径在 WindowsApps 文件夹中,修改权限后导致 wsl 不能使用、微软自带的软件报错(参数错误)以及微软商店不能使…

区块链交易平台开发流程

随着区块链技术的日益发展,越来越多的金融机构和创业公司开始探索开发区块链交易平台的潜力。以下是一篇关于区块链交易平台开发流程的指南。 一、理解区块链技术 在开发区块链交易平台之前,必须深入理解区块链技术的内在机制和原理。区块链是一…

大数据之-Flink学习笔记

Flink Apache Flink — 数据流上的有状态计算。 Apache Flink 是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算处理。 任何类型的数据都以事件流的形式生成。信用卡交易、传感器测量、机器日志或网站或移动应用程序 2上的用户交互,…

java复习-10-String类

String 类 实例化 String 本身包装的是一个数组,并且其有两种对象的实例化形式:直接赋值、构造方法实例化。 public class StringDemo {public static void main(String args[]){// 直接赋值String str1 "Hello,World";// 构造方法实例化S…

Web自动化测试理解

最近几天,由于工作需要接触Web自动化测试,所以我从网上找的资料,学习了解,然后自己总结汇总的随笔,如文章中有不足的地方,请大家多多指教;或者文章内容与他人相似,望见谅。 手工测试…