- 博客(28)
- 收藏
- 关注
原创 数据库的学习
三、使用if条件语句编写MySQL备份脚本 echo `date +%Y%m%d`#打印年月日` 反引号括起来的内容可以看成是命令在执行,把它解析为命令编辑MySQL备份脚本脚本:#!/bin/bash#auto backup mysql db#by authors zl 2022#define backup pathBAK_DIR=/data/backup/`date +%Y%m%d`MYSQLDB=firstdbMYSQLUSR=backupMYSQLPW=1MYSQL
2022-06-02 17:47:08
113
原创 Rancher
1、rancher简介Rancher ['rantfe®] 牧场主Rancher简介Rancher是一套容器管理平台,它可以帮助组织在生产环境中轻松快捷的部署和管理容器。 Rancher可以轻松地管理各种环境的Kubernetes,满足IT需求并为DevOps团队提供支持。Kubernetes不仅已经成为的容器编排标准,它也正在迅速成为各类云和虚拟化厂商提供的标准基础架构。Rancher用户可以选择使用Rancher Kubernetes Engine(RKE)创建Kubernetes集群,也可以使
2022-04-12 21:56:47
2756
原创 Ansible
1、运维自动化和ansible架构介绍ansible的作用以及工作结构1、ansible简介:ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:(1)、连接插件connection
2022-04-07 20:24:45
259
原创 Kubernetes核心实战——存储抽象NFS、PV、PVC、ConfigMap、Secret
P62、核心实战——存储抽象——基本概念与NFS环境搭建由于之前docker的数据卷都是每个容器挂在至外部,但是不可能一百个容器创建100个的数据卷,所以k8s就抽象了一个存储层;在每一个节点都有一个存储目录,然后各个节点的存储的数据都会通过NFS(网路文件系统)同步。存储层的框架不止NFS,只是这里学习用NFS。不同节点的NFS都是数据同步的,即使其中一个宕机了,也会在其他机器拉起来,然后数据同步过去。安装NFS:1、所有节点#所有机器安装yum install -y nfs-utils
2022-03-18 17:35:00
984
原创 Kubernetes核心实战——服务网络Service、Ingress
P54、核心实战——服务网络Service服务发现ClusterIP方式Service:将一组 Pods 公开为网络服务的抽象方法。理解:Service为这些pod统一暴露一个地址,上图的前端只要配置Service的地址就好kubectl expose deployment my-dep --port=8000 --target-port=80#创建一个deployment的暴露端口为8000,pod的目标端口为80执行完以上命令即创建一个新的资源就是Service查看Service:ku
2022-03-17 17:42:55
2230
原创 Kubernetes核心实战——pod与Deployment
P41 、核心实战——操作NameSpace1、资源创建方式● 命令行● YAML2、Namespace名称空间用来隔离资源#获取k8s的名称空间 kubectl get ns每一个部署的应用有所属的名称空间只看某个名称空间的pod命令: -n 指定看kube-system的podkubectl get pods -n kube-systemkubectl create ns hello #创建名称空间kubectl delete ns h
2022-03-17 13:33:30
659
原创 Docker Swarm学习
八、环境准备:个人购买阿里云服务器4台接着就是下一步确认密码即可,然后就一直下一步,直到如下图:至此购买完毕,接下来就可以做一主三从的集群。四台机器安装docker在博客里有安装步骤。...
2022-03-08 16:11:49
209
原创 Docker compose学习
一、介绍Docker compose作用:Docker compose就是用来轻松高效管理容器,定义运行多个容器的Docker compose运用介绍:Compose是Docker官方的开源项目,需要安装!Dockerfile 让程序在任何地方运行。如web服务、redis、mysql、nginx…多个容器。Compose的yaml文件(类似这样):version: "3.9" # optional since v1.27.0services: web: build: .
2022-01-29 10:48:29
155
原创 Docker 学习4
三十一、发布镜像到DockerHub1、登录网址:https://hub.docker.com/2、账号:zlxwl邮箱:*密码:**3、在我们自己服务上提交,登录DockerHub账号”[[e[31docker login --helpUsage: docker login [OPTIONS] [SERVER]Log in to a Docker registry.If no server is specified, the default is defined by the d
2021-12-27 11:31:20
394
原创 Docker 学习3
二十一、容器数据卷使用1. 数据卷介绍Docker将运用与运行的环境打包形成容器运行, Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据做为镜像的一部分保存下来, 那么当容器删除后,数据自然也就没有了。 为了能保存数据在Docker中我们使用卷。卷就是目录或文件,存在于一个或多个容器中,将我们容器内的目录,挂载到Linux上,但卷不属于联合文件系统(Union FileSystem),因此能够绕过联合文件系统提供一些用于持续存储或共享数据的特性:。小结:卷的设
2021-12-23 22:05:00
557
原创 Docker 学习2
十一、日志、元数据、进程的查看1、其他常用命令[root@iZwz99sm8v95sckz8bd2c4Z ~]# docker logs --helpUsage: docker logs [OPTIONS] CONTAINERFetch the logs of a containerOptions: --details Show extra details provided to logs -f, --follow Follow log out
2021-12-22 09:52:03
1594
原创 Docker 学习1
一 —— 四、Docker扫盲docker容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。虚拟机技术容器化技术容器化技术不是模拟一个完整的操作系统,比较docker和虚拟机的不同:(1)传统虚拟机,虚拟出一套硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件应用。(2)容器内的应用直接运行宿主机的内核,容器没有自己的内核,也没有虚拟我们的硬件,所以就轻便。(3) 每个容器间是相互隔离的,每个容器内都有一个
2021-12-21 09:46:29
363
原创 Java 第二阶段(继承及接口)
21.java继承的概念及用法需要知道的是:我们创建的类如果没有指定继承谁的话,默认都是object。以下代码是使用extends关键字的代码(继承例子):package jicheng.chenlichen.java; class Person{ String name; String address; public void Eat(){ System.out.println("人吃饭"); } public void Drink(){ System.out.pri
2021-01-07 12:22:11
163
原创 Linux 网络编程(socket)
1.网络编程概述之前学习的进程间通讯(管道、消息队列、共享内存,信号、信号量)都是依赖于内核,这也就使得它们进行单机通讯,不能多机通讯是它们得缺陷,对于我们的应用场景来说很多不是单机的,所以之前学习的进程间通讯是不够的,这里就需要用到网络实现多机通讯(如Linux和Android或者Ios等设备得网络通讯)。网络编程关心得:1、IP地址和端口号;2、数据:协议(http、udp/tcp)即数据格式这里我们学习得是socket(套接字)网络编程,用得协议是tcp/udp(如下图)tcp:面向连接
2020-12-18 22:05:22
328
原创 Linux 线程 (第三阶段 条件控制)
7.线程条件控制实现线程的同步学习线程可参考的博文:https://www.cnblogs.com/xiehongfeng100/p/4620852.html条件变量相关API条件变量是线程另一可用的同步机制。条件变量给多个线程提供了一个会合的场所。条件变量与互斥量一起使用时,允许线程以无竞争的方式等待特定的条件发生。条件本身是由互斥量保护的。线程在改变条件状态前必须首先锁住互斥量,其他线程在获得互斥量之前不会察觉到这种改变,因为必须锁定互斥量以后才能计算条件。条件变量使用之前必须首先初始化,p
2020-12-17 16:39:26
86
原创 Linux 线程 (第二阶段 互斥锁)
4.线程同步之互斥量加锁解锁学习线程可参考的博文:https://www.cnblogs.com/xiehongfeng100/p/4620852.html与互斥锁相关API互斥量(mutex)从本质上来说是一把锁,在访问共享资源(被加锁解锁之间包含的就是共享资源,并不是线程之间和进程共享的内存)前对互斥量进行加锁,在访问完成后释放互斥量上的锁。对互斥量进行加锁后,任何其他试图再次对互斥量加锁的线程将会被阻塞直到当前线程释放该互斥锁。如果释放互斥锁时有多个线程阻塞,所有在该互斥锁上的阻塞线程都会变成
2020-12-16 21:26:28
204
1
原创 Linux 线程 (第一阶段 线程的创建 退出 等待)
1.线程概述(与进程的区别及线程的优势)学习线程可参考的博文:https://www.cnblogs.com/xiehongfeng100/p/4620852.htmlLinux线程介绍:通过比较进程引入线程典型的UNIX/Linux进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事情。有了多个控制线程后,在程序设计时可以把进程设计成在同一时刻做不止一件事,每个线程各自处理独立的任务。进程是程序执行时的一个实例,是担当分配系统资源(CPU时间、内存等)的基本单位。在面向线程设计的系统中,
2020-12-16 12:15:16
99
原创 Linux 进程间通讯(第三阶段 信号 信号量)
12.信号概述对于 Linux来说,实际信号是软中断,许多重要的程序都需要处理信号。信号,为 Linux 提供了一种处理异步事件的方法。比如,终端用户输入了 ctrl+c 来中断程序,会通过信号机制停止一个程序。原文摘自:https://www.jianshu.com/p/f445bfeea40a1、信号的名字和编号:每个信号都有一个名字和编号,这些名字都以“SIG”开头,例如“SIGIO ”、“SIGCHLD”等等。信号定义在signal.h头文件中,信号名都定义为正整数。具体的信号名称可以使
2020-12-14 22:12:39
189
原创 Linux 进程间通讯(第二阶段 消息队列、共享内存)
6.消息队列的通信原理消息队列的工作原理如下图解释,消息队列存在于linux内核,每个队列有Id号,是由链表组成的,但我们关心的是1、如何创建新的消息队列(链表) ;2、进程B(或A)怎么加消息到队列;3、进程A(或B)怎么从队列拿到消息 。下面看看别人的博文如何描述消息队列的:消息队列,是消息的链接表,存放在内核中。一个消息队列由一个标识符(即队列ID)来标识1、特点1、消息队列是面向记录的,其中的消息具有特定的格式以及特定的优先级。2、消息队列独立于发送与接收进程。进程终止时,消息队列及其
2020-12-12 16:12:06
193
原创 Linux 进程间通信(第一阶段管道通信)
1.进程间通信概述本章讲的就是单机的进程间通信(进程1和进程2都跑在一个电脑上的)。多机进程通信(进程1在pc1,进程2在pc2,只是通过网络来通信的);原先我们接触的进程间通讯(某种意义的通讯)是父进程等待子进程退出,这种通讯没什么意义;另一种是调用exec族函数,A进程启动B进程,但是A启动B后A就不跑了,只跑B进程;这两种都有点残疾;想要的进程之间应该建立特殊通道,a进程可以往里放数据,2可以往里读数据,2可以放数据,1可以往里读数据,这才是真正意义上的进程间通讯。这里文字描述可以对应下图:书中
2020-12-11 16:57:43
110
原创 Linux进程(阶段三exec族函数,system及popen)
10.exec族函数可以看精彩博文:https://blog.csdn.net/u014530704/article/details/73848573exec族函数函数的作用:我们用fork函数创建新进程后,经常会在新进程中调用exec函数去执行另外一个程序。当进程调用exec函数时,该进程被完全替换为新程序。因为调用exec函数并不创建新进程,所以前后进程的ID并没有改变。exec族函数定义: 可以通过这个网站查询:linux函数查询功能: 在调用进程内部执行一个可执行文件。可执行文件既
2020-12-10 22:25:10
271
原创 Linux 进程(第二阶段)
6.vfork创建进程下图是fork与vfork的区别:下面我们来对比一下fork和vfork的区别:首先看fork的代码(demo8.c)#include <stdio.h>#include <sys/types.h>#include <unistd.h>int main(){ pid_t pid; printf("father pid = %d\n",getpid()); pid = fork();
2020-12-10 10:37:52
150
原创 Linux 进程(第一阶段)
1.进程相关概念下面五副图帮助了解上面是进程及进程相关的概念:一、二、三、四、五、下图就是对上图的东西文字描述:2.创建进程函数fork的使用
2020-12-09 16:34:45
107
原创 Linux 文件编程(第三阶段 标准C库对文件操作)
13.标准C库对文件操作引入linux 和标准C库文件操作对比:https://www.cnblogs.com/NickyYe/p/5497659.html14.标准c库打开创建文件读写文件光标移动fopen,fwrite,fread代码使用方式(demo19.c)#include <stdio.h>#include <string.h>int main(){ //FILE *fopen(const char *pathname, const ch
2020-12-09 12:15:45
137
原创 Linux 文件编程(第一阶段主要是对 open和read write函数的详细demo)
1、文件编程概述2.文件打开及创建下面这张图说明的是open函数的返回值(描述符)很重要,当操作不止一个文件时秒速符起到一个索引的作用,没有这个描述符,write和read函数就没有目标操作了。下图是对open函数的参数说明以下是open函数的简单调用(在Ubuntu 中的fileOperat目录的 demo1代码)#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#incl
2020-12-07 21:30:31
355
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人