【云备份|| 日志 day1】项目认识 && 环境准备

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 【云备份|| 日志 day1】项目认识 && 环境准备

day1

项目总纲

云备份

实现目标

搭建环境

词汇解释

项目总纲

云备份

自动将本地计算机上指定文件夹中需要备份的文件上传备份到服务器中。并且能够随时通过浏览器进行查看并且下载,其中下载过程支持断点续传功能,而服务器也会对上传文件进行热点管理,将非热点文件进行压缩存储,节省磁盘空间

实现目标

这个云备份项目需要我们实现两端程序,其中包括部署在用户机的客户端程序,上传需要备份的文件,以及运行在服务器上的服务端程序,实现备份文件的存储和管理,两端合作实现总体的自动云备份功能。

1. 服务端程序负责功能

针对客户端上传的文件进行备份存储

能够对文件进行热点文件管理,对非热点文件进行压缩存储,节省磁盘空间。

支持客户端浏览器查看访问文件列表。

支持客户端浏览器下载文件,并且下载支持断点续传。

2. 服务端功能模块划分

数据管理模块:负责服务器上备份文件的信息管理。

网络通信模块:搭建网络通信服务器,实现与客户端通信。

业务处理模块:针对客户端的各个请求进行对应业务处理并响应结果。

热点管理模块:负责文件的热点判断,以及非热点文件的压缩存储。

3. 客户端程序负责功能

能够自动检测客户机指定文件夹中的文件,并判断是否需要备份

将需要备份的文件逐个上传到服务器

4. 客户端功能模块划分

数据管理模块:负责客户端备份的文件信息管理,通过这些数据可以确定一个文件是否需要备份。

文件检测模块:遍历获取指定文件夹中所有文件路径名称。

网络通信模块:搭建网络通信客户端,实现将文件数据备份上传到服务器

搭建环境

gcc升级7.3版本:

sudo yum install centos-release-scl-rh centos-release-scl//  安装语言信息
sudo yum install devtoolset-7-gcc devtoolset-7-gcc-c++  //安装高版本的gcc
source /opt/rh/devtoolset-7/enable   //加载配置文件
echo "source /opt/rh/devtoolset-7/enable" >> ~/.bashrc   //修改默认配置文件

查看gcc版本 :gcc -v

安装jsoncpp库:

sudo yum install epel-release
sudo yum install jsoncpp-devel

查看json的下载路径:ls /usr/include/jsoncpp/json/

下载bundle数据压缩库

sudo yum install git   //下载 git 工具
git clone https://github.com/r-lyeh-archived/bundle.git

下载 httplib 库

git clone https://github.com/yhirose/cpp-httplib.git

如果无法在shell访问github,我们可以去GitHub官网上下载这两个第三方库,下载至本地后,通过rz命令上传到服务器上。

词汇解释

断点续传功能

断点续传指的是在下载或上传时,将下载或上传任务(一个文件或一个压缩包)人为的划分为几个部分,每一个部分采用一个线程进行上传或下载,如果碰到网络故障,可以从已经上传或下载的部分开始继续上传下载未完成的部分,而没有必要从头开始上传下载。

相当于你下一个大型游戏,下到一半没有流量了,可以回家连上wife之后从当前进度继续下载。

热点管理

在这里的解释就是,对一些经常被访问的文件进行处理,以便更好的进行访问,不常访问的文件进行压缩处理。


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
6月前
|
监控 安全 Shell
防止员工泄密的措施:在Linux环境下使用Bash脚本实现日志监控
在Linux环境下,为防止员工泄密,本文提出使用Bash脚本进行日志监控。脚本会定期检查系统日志文件,搜索敏感关键词(如"password"、"confidential"、"secret"),并将匹配项记录到临时日志文件。当检测到可疑活动时,脚本通过curl自动将数据POST到公司内部网站进行分析处理,增强信息安全防护。
175 0
|
6月前
|
Java 开发工具 Windows
Windows环境下面启动jar包,输出的日志出现乱码的解决办法
Windows环境下面启动jar包,输出的日志出现乱码的解决办法
|
9天前
|
JSON Java 数据库
SpringBoot项目使用AOP及自定义注解保存操作日志
SpringBoot项目使用AOP及自定义注解保存操作日志
26 1
|
27天前
|
Arthas 监控 Java
JVM知识体系学习七:了解JVM常用命令行参数、GC日志详解、调优三大方面(JVM规划和预调优、优化JVM环境、JVM运行出现的各种问题)、Arthas
这篇文章全面介绍了JVM的命令行参数、GC日志分析以及性能调优的各个方面,包括监控工具使用和实际案例分析。
39 3
|
6月前
|
存储 数据采集 Kubernetes
一文详解K8s环境下Job类日志采集方案
本文介绍了K8s中Job和Cronjob控制器用于非常驻容器编排的场景,以及Job容器的特点:增删频率高、生命周期短和突发并发大。文章重点讨论了Job日志采集的关键考虑点,包括容器发现速度、开始采集延时和弹性支持,并对比了5种采集方案:DaemonSet采集、Sidecar采集、ECI采集、同容器采集和独立存储采集。对于短生命周期Job,建议使用Sidecar或ECI采集,通过调整参数确保数据完整性。对于突发大量Job,需要关注服务端资源限制和采集容器的资源调整。文章总结了不同场景下的推荐采集方案,并指出iLogtail和SLS未来可能的优化方向。
|
3月前
|
JSON 中间件 Go
go语言后端开发学习(四) —— 在go项目中使用Zap日志库
本文详细介绍了如何在Go项目中集成并配置Zap日志库。首先通过`go get -u go.uber.org/zap`命令安装Zap,接着展示了`Logger`与`Sugared Logger`两种日志记录器的基本用法。随后深入探讨了Zap的高级配置,包括如何将日志输出至文件、调整时间格式、记录调用者信息以及日志分割等。最后,文章演示了如何在gin框架中集成Zap,通过自定义中间件实现了日志记录和异常恢复功能。通过这些步骤,读者可以掌握Zap在实际项目中的应用与定制方法
125 1
go语言后端开发学习(四) —— 在go项目中使用Zap日志库
|
3月前
|
开发框架 .NET Docker
【Azure 应用服务】App Service .NET Core项目在Program.cs中自定义添加的logger.LogInformation,部署到App Service上后日志不显示Log Stream中的问题
【Azure 应用服务】App Service .NET Core项目在Program.cs中自定义添加的logger.LogInformation,部署到App Service上后日志不显示Log Stream中的问题
|
3月前
|
XML Java Maven
logback在springBoot项目中的使用 springboot中使用日志进行持久化保存日志信息
这篇文章详细介绍了如何在Spring Boot项目中使用logback进行日志记录,包括Maven依赖配置、logback配置文件的编写,以及实现的日志持久化和控制台输出效果。
logback在springBoot项目中的使用 springboot中使用日志进行持久化保存日志信息
|
3月前
|
JavaScript Serverless Linux
函数计算产品使用问题之遇到Node.js环境下的请求日志没有正常输出时,该如何排查
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
4月前
|
开发框架 NoSQL 前端开发
在Winform项目和Web API的.NetCore项目中使用Serilog 来记录日志信息
在Winform项目和Web API的.NetCore项目中使用Serilog 来记录日志信息
下一篇
无影云桌面