自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(235)
  • 资源 (1)
  • 收藏
  • 关注

原创 文件删除后仍然被进程占用导致分区占满

docker 容器启动异常,查看日志报错 /var/log/pods 下面存储分区不够,查看 /var 分区未发现异常目录。/var/lib/docker 为额外挂载的分区,从 du -sh 的结果来看并没有大目录占用的 /var 分区。可以看到是 rsyslog 服务的日志占用导致,删除的日志文件句柄没有释放,停止 rsyslog 服务。怀疑是有文件删除后仍然被进程占用导致没有释放。

2023-07-12 17:32:22 383

原创 Containerd 安装使用与高级命令行工具 crictl、nerdctl

containerd

2022-08-29 22:20:50 4025 1

原创 k8s Pod 驱逐时间设置

k8s pod 漂移

2022-08-25 11:07:38 1111 1

原创 Linux 系统性能检测命令

linux

2022-08-21 16:26:34 2544

原创 Centos7/8 和 Ubuntu/Debain 更换源

REPO

2022-08-21 13:22:25 1274

原创 远程登录 docker 容器(CMD、SecureCRT)

docker

2022-08-21 10:51:00 781

原创 HELM 如何使用模板变量部署多个应用

helm template

2022-08-18 10:44:06 1721

原创 Docker 登录官方仓库

docker

2022-08-16 14:18:24 2846

原创 Linux 如何给普通用户 sudo 权限

sudo

2022-08-09 17:36:56 2182

原创 k8s 如何让 ns 无法删除

namespace

2022-08-09 15:43:22 300

转载 Cpu 监控脚本

cpu monitor

2022-08-05 15:48:29 850

原创 Curl 命令使用

CURL

2022-07-29 17:05:51 1298

原创 Minio 安装与使用

minio

2022-07-25 17:52:14 1214

原创 Supervisor 安装与使用

supervisor

2022-07-25 09:39:27 819

原创 Openresty + keepalived 实现负载均衡 + IPV6 验证

Openresty + keepalived 实现负载均衡 + IPV6 验证

2022-07-24 17:33:06 846

原创 K8S 集群的 Node 节点如何使用 kubectl

K8S 集群的 Node 节点如何使用 kubectl

2022-07-20 10:11:06 520

转载 K8S 安装 Metric-server

metric-server

2022-07-20 09:31:20 1799 1

原创 ubuntu18.04 安装 k3sv1.22.5

ubuntu18.04 安装 k3sv1.22.5

2022-07-17 16:37:45 1055

原创 Openresty 做静态资源服务器

openresty

2022-07-15 00:39:21 1341

原创 Linux 统计主机网络连接数

统计主机网络连接数

2022-07-12 19:47:32 825

原创 K8S ingressv1.1.3 部署

k8s-ingress

2022-06-25 13:56:00 1287

原创 Golang 学习二十六(HTTP 编程与 mysql)

文章目录1. 服务器配置2. 客户端配置3. 请求方法4. panic 宕机恢复5. 模板6. MysqlGo 原生支持 http,直接使用 import("net/http") 即可,http 服务性能和 nginx 非常接近,都具备高并发支持的能力,代码实现起来较为简单。1. 服务器配置示例:https://www.jianshu.com/p/e494795794cfpackage mainimport ( "fmt" "net/http")/* HTTP 服务端配置 */

2022-05-10 00:26:55 1558

原创 Golang 学习二十五(UDP 编程)

文章目录1. 服务端配置2. 客户端配置3. 实现双向聊天4. 优化多客户端实现通讯–UDP 是用户数据报协议,是一种无连接传输协议,不需要建立连接就可以直接发送和接收数据,属于不可靠的,没有时序的通信,UDP 实时性好,适合直播环境。1. 服务端配置示例package mainimport ( "fmt" "net")/* UDP 服务端 */func main() { // 1. 监听 listener,err := net.ListenUDP("

2022-04-29 17:41:00 3120

原创 Golang 学习二十四(TCP 编程)

文章目录1. 服务器端配置2. 客户端配置3. 运行结果4. 优化聊天模式5. 实现客户端和服务端之间的双向聊天客户端和服务器模型socket:BSD UNIX 的进程通信机制,通常也称作套接字,用于描述 IP 地址和端口,是一个通信链的句柄。socket 可以理解为 TCP/IP 网络的 API,它定义了许多函数,程序员可以使用它来开发 TCP/IP 网络的应用程序。计算机上运行对的应用程序通常通过套接字向网络发出请求或者应答网络请求。服务端处理流程:1. 监听端口2. 接收客户端连接3

2022-04-29 17:39:47 3547

原创 Golang 学习二十三(单元测试)

文章目录1. 函数测试2. 结构体测试  在提交测试工程师代码前,先进行单元测试自检,没有问题,方可提交代码,对于模块或者函数需要自行写测试用例。规则:文件名必须以 _test.go 结尾。如果是测试函数,必须以 Test 开头。1. 函数测试calc.gopackage main// 加法func add(a,b int) int { return a + b}// 减法func sub(a,b int) int { return a - b

2022-04-29 17:36:27 343

原创 Golang 学习二十二(Go 并发)

文章目录1. 基本概念2. sync.WaitGroup3. goroutine 和线程4. channel5. 无缓冲通道和缓冲通道6. 案例:生产者和消费者模型7. select 多路复用8. 单向通道9. 并发控制和锁(1) 互斥锁(2) 读写互斥锁(3) sync.Once(4) sync.Map(5) 定时器1. 基本概念并发:是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。同—时间段同时在做多个事

2022-04-29 17:35:44 560

原创 Golang 学习二十一(文件处理)

文章目录1. 打开和关闭文件2. 读取文件3. 写入文件计算机中的文件是存储在外部介质(硬盘)上的数据集合,文件分为文本文件和二进制文件。1. 打开和关闭文件os.open() 函数能够打开一个文件,返回一个 *File 和一个 err,对得到的文件示例 close() 方法能够关闭文件。示例package mainimport ( "fmt" "os")// 打开关闭文件func main() { // 打开当前目录下的 abc.txt 文件 fil

2022-04-19 23:00:21 635 1

原创 Golang 学习二十(反射)

文章目录1. reflect2. ValueOf3. Value.Set4. 结构体反射5. 函数反射6. 方法反射变量 ---> 一个值,一个类型,值类型数组 ---> 相同类型,多个值,长度固定,值类型切片 ---> 相同类型,多个值,长度动态,引用类型,有序指针 ---> 地址,引用类型映射 ---> k-v 按名字取值,无序,相同类型,多个值,长度动态结构体 ---> 多个值,类型多样,字段(属性)接口 ---> 接受任意类型的定义反射概

2022-04-19 22:59:02 539

原创 Golang 学习十九(接口)

文章目录1. 接口定义2. 多态3. 系统接口调用4. 接口嵌套5. 类型断言6. 链表使用发现输出哪里不同package mainimport "fmt"// 父类结构体 Cartype Car struct { weight int name string}// 父方法func (c Car) Run() { fmt.Println("Running")}// 子结构体 Traintype Train struct { // 匿名

2022-04-19 22:57:56 193

原创 Golang 学习十八(结构体和方法)

文章目录1. 别名定义2. 工厂模式3. Tag 原信息4. 匿名字段5. 方法1. 别名定义变量别名定义// 有些变量太长,简化变量名// 为了安全,隐藏原始变量名package mainimport "fmt"// int 类型起了别名为 integertype integer intfunc main() { // 类型别名定义 var i integer = 1000 fmt.Println(i) var j int = 100

2022-04-11 23:03:42 385

原创 Golang 学习十七(二叉树)

文章目录1. 前序遍历2. 中序遍历3. 后序遍历满足以下两个条件的树就是二叉树:本身是有序树树中包含的各个节点的度不能超过 2,即只能是 0、1 或者 21. 前序遍历前序遍历二叉树(根左右)package mainimport "fmt"type Student struct { Name string Age int Score float32 // 左子树指针 left *Student // 右子树指针 right

2022-04-09 23:33:17 3206

原创 Golang 学习十六(结构体链表)

文章目录1. 存储方式2. 链表更新2.1 链表定义2.2 将遍历链表封装成函数2.3 尾部添加元素(结构体节点)2.4 头部添加元素2.5 插入元素2.6 删除元素概念:结构体是自定义复杂数据结构,struct 里面可以包含多个字段(属性),struct 类型可以定义方法,和函数有区分,struct 属于值类型,且可以做嵌套,Go 中没有 Class 类型,只有 struct 类型。示例:回顾结构体定义package mainimport "fmt"type Car struct {

2022-04-09 23:32:05 1020

原创 Golang 学习十五(时间函数)

文章目录1. 时间概念2. 获取当前日期3. 统计程序执行时间1. 时间概念1小时=60分钟 Hour1分钟=60秒 Minute1秒=1000毫秒 Second1毫秒= 1000微秒 Millisecond1微秒=1000纳秒 Microsecond1纳秒 Nanosecond// 时间格式化package mainimport ( "fmt" "time")func main() { // 获取当前时间 now := time.Now()

2022-04-07 14:04:13 469

原创 Golang 学习十四(字符串处理)

文章目录1. 字节数组2. 头尾处理3. 位置索引4. 替换5. 统计次数6. 重复7. 大小写8. 去除字符9. 切片处理10. 数值处理1. 字节数组字符是人的语言(文本:字符串),字节是机器的语言(图片,音频,视频 …),它们之间通过 ASCII 码互相翻译,一个英文字符等于一个字节,一个中文字符等于二个字节(UTF-8)。package mainimport "fmt"func main() { var ( str1 = "hello" str

2022-04-04 17:50:26 747

原创 Golang 学习十三(递归排序)

文章目录1. 阶乘2. 斐波那契数列递归,就是在运行的过程中调用自己。Go 支持递归。但在使用递归时,开发者需要设置退出条件,否则递归将陷入无限循环中。递归函数对于解决数学上的问题是非常有用的,就像计算阶乘,生成斐波那契数列等。语法如下:func recursion() { recursion() // 函数调用自身}func main() { recursion()}1. 阶乘示例:package mainimport "fmt"// uint64

2022-04-03 11:04:24 425

原创 Golang 学习十二(Go 映射 map)

文章目录1. 映射的实现2. 元素赋值3. 查找与遍历4. 元素删除5. 将映射传递给函数映射是一种数据结构,用于存储一系列无序的键值对(映射基于键来存储值)。映射功能强大的地方是,能够基于键快速检索数据。键就像索引一样,指向与该键关联的值。Map 是一种集合,所以我们可以像迭代数组和切片那样迭代它。不过,Map 是无序的,我们无法决定它的返回顺序,这是因为 Map 是使用 hash 表来实现的。与 C++、Java 不一样,Go 使用映射(map)不需要引入任何库。四种复合类型特点:

2022-03-31 21:27:34 1154

原创 Golang 学习十一(Go 切片)

文章目录1. 定义切片2. 切片初始化3. len() 和 cap() 函数4. 空(nil)切片5. 切片截取6. append() 和 copy() 函数Go 语言切片是对数组的抽象。Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go 中提供了一种灵活,功能强悍的内置类型切片(“动态数组”),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大。1. 定义切片你可以声明一个未指定大小的数组来定义切片:var identifier []type切

2022-03-29 18:03:45 310

原创 Golang 学习十(Go 结构体)

文章目录1. 定义结构体2. 访问结构体成员3. 结构体作为函数参数4. 结构体指针Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。结构体表示一项记录,比如保存图书馆的书籍记录,每本书有以下属性:- Title :标题- Author : 作者- Subject :学科- ID :书籍ID1. 定义结构体结构体定义需要使用 type 和 struct 语句。struct 语句定义一个

2022-03-29 16:42:02 525

原创 Golang 学习九(Go 指针)

文章目录1. 指针概念2. 使用指针流程3. 空指针4. 指针数组5. 指向指针的指针6. 指针作为函数参数Go 中指针很容易,使用指针可以更简单的执行一些任务。变量是一种使用方便的占位符,用于引用计算机内存地址。取地址符是 &,放到一个变量前使用就会返回相应变量的内存地址。1. 指针概念一个指针变量指向了一个值的内存地址。类似于变量和常量,在使用指针前需要声明指针。指针声明格式如下:var varName *varTypevarType 是指针类型,varNam

2022-03-28 23:05:40 851

原创 Golang 学习八(Go 数组)

文章目录1. 数组介绍2. 声明数组3. 初始化数组4. 访问数组元素5. 多维数组1. 数组介绍数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整型、字符串或者自定义类型。相对于去声明 number0, number1, ... number99 的变量,使用数组形式 numbers[0], numbers[1]...numbers[99] 更加方便且易于扩展。数组元素可以通过索引(位置)来读取(或者修改),索引从 0 开始,第一个元素索引为 0,第二

2022-03-28 12:41:36 2302

oracle-rac 集群搭建.pdf

适合初学者想搭建 oracle 集群的人

2021-10-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除