
go语言
运维打怪晋级之路
2011毕业以后就从事运维工作的,从一名职场新手通过自己的学习和工作中的总结慢慢提升自己的专业技能,目前在一家互联网公司做运维架构师,主要负责公司阿里云的服务器和服务的运维工作,之前在亚信科技从事过业务维护工程师、自动化运维工程师、报表稽核开发工程师,2016年转为报表开发工程师,2018年跳槽到一家互联网公司做高级运维工程师,主要负责公司系统的运维架构以及系统安全,目前我在一家国企任职高级运维工程师。我在工作中有耐心,抗压力、爱折腾,喜欢研究自动化工具,喜欢写一些博客技术分享。擅长linux系统、shell脚本、python脚本、ELK系统、JAVA系统调优、docker、k8s等。
展开
-
docker安装jiacrontab可视化任务管理工具
简介:jiacrontab提供可视化界面的定时任务管理工具。允许设置每个脚本的超时时间,超时操作可选择邮件通知管理者,或强杀脚本进程。允许设置脚本的最大并发数。一台server管理多个client。每个脚本都可在server端灵活配置,如测试脚本运行,查看日志,强杀进程,停止定时…。允许添加脚本依赖(支持跨服务器),依赖脚本提供同步和异步的执行模式。友好的web界面,方便用户操作。脚本出错时可选择邮箱通知多人。原创 2023-03-21 17:18:26 · 1110 阅读 · 0 评论 -
K8S集群之-ETCD集群监控
ETCD集群监控原创 2023-03-16 14:20:26 · 1631 阅读 · 0 评论 -
在linux环境中将Excel转换成文本
在运维自动化过程中有这样的需求,有公司使用公共文档Excel维护信息,这些信息需要运维及时获取实现自动化任务,这些自动化任务以shell为例,shell不能直接操作Excel文档,需要将Excel转换成文本然后在解析和分析,我使用GO语言开发编译成二进制命令(之前的go编译文章可以参考 https://blog.youkuaiyun.com/qq_31555951/article/details/122177160),上传到服务器当命令使用。原创 2023-01-08 09:50:09 · 2280 阅读 · 2 评论 -
优快云的GO技能树答题
答题等你来挑战,一起学Go。原创 2022-12-29 18:44:29 · 230 阅读 · 0 评论 -
golang程序打包成脚本部署到Linux系统
golang程序打包成脚本部署到Linux系统一、本地编译Golang程序本地代码://变量的作用域package mainimport "fmt"//单行注释//包级变量var packageVar string = "pachage var"func main(){ //函数级别的变量 var funVar string = "func var" fmt.Println(packageVar,funVar) /* 这是多行注释 以下是使用代码块功能 */..原创 2021-12-27 17:45:09 · 4521 阅读 · 0 评论 -
20- Go 切片的使用2
package mainimport "fmt"func main() { fmt.Println("============append函数的基本使用==========") s1 := []int{111, 222, 333, 444, 555, 666} fmt.Printf("切片的长度:%v,切片的容量:%v, 切片对应的数据为:%v\n", len(s1), cap(s1), s1) s1 = append(s1, 777) fmt.Printf("扩容之后的切片s1的长度为原创 2021-09-16 19:19:13 · 142 阅读 · 0 评论 -
19 - Go 切片的使用1
19 - Go 切片的使用1/* 1、切片是一个可以动态变化的数组,切片发的长度是可以变化的 2、切片的基本定义: var 切片名称 []类型 3、切片是数组的一个引用,因此切片是引用类型*/package mainimport "fmt"func main() { //切片的创建 var qp []int = []int{1,2,3,4,5} fmt.Printf("%T\n",qp) qp1:=[] int{6,7,8,9} fmt.Printf("%T\n",qp1.原创 2021-09-09 19:15:15 · 160 阅读 · 0 评论 -
18 - Go 数组的使用
/* 1、数组是指一系列同一类型数据集合,数组长度固定 2、数组定义如下: var array [10] int 注: var关键字 array是数组的名称 10是长度 int是数组的类型 3、数组的遍历:方法1:常规遍历(for循环) 方法2:for-range遍历*/package mainimport "fmt"func main() { //数组的4种初始化的方法 var arr1 [3]int = [3]int{1, 2, 3} //最完整、规范的写法 fmt.Print原创 2021-09-07 18:22:27 · 227 阅读 · 0 评论 -
17 - Go 递归的使用
package mainimport "fmt"func main() { fmt.Println("GO 语言递归调用") var aa_input int fmt.Println("请输入你要查看数的阶乘?:") fmt.Scan(&aa_input) fmt.Println(Fac(aa_input)) fmt.Println(fn(9))}//求n! n!=1*2*3*4*....*nfunc Fac(n int) int{ if n>0 { retur原创 2021-09-06 18:23:49 · 273 阅读 · 0 评论 -
16 - Go 闭包的使用
Go 闭包的使用package mainimport ( "fmt")func Test()int{ var x int x++ return x}//函数的调用添加()就是执行func main(){ f1:=Test() //Test函数有返回值 f2:=Test() f3:=Test() fmt.Println(f1,f2,f3) //函数在每次调用的时候分配内存,调用结束后销毁,f1,f2,f3是依次调用的 fmt.Println("======匿名函数执行.原创 2021-09-06 13:08:11 · 182 阅读 · 0 评论 -
15 - Go 匿名函数的使用
/* 1、Go 语言定义函数的时候,不能在一个函数中在定义一个函数 2、如果我们想在一个函数中在定义另一个函数,那么就可以使用匿名函数 3、所谓的匿名函数就是没有名字的函数 4、语法 func()*/package mainimport "fmt"func main() { f:=func(){ fmt.Println("这里是匿名函数") } fmt.Printf("匿名函数的类型是:%T、值是%v\n",f,f) //调用匿名函数 f() fmt.Println("原创 2021-09-01 17:38:52 · 221 阅读 · 0 评论 -
14 - Go 函数的基本使用
函数的基本使用package mainimport "fmt"func main() { a := 200 b := 100 res1 := Add(a, b) fmt.Printf("计算和: %d\n", res1) res2 := Sub(a, b) fmt.Printf("计算差: %d\n", res2) res3 := sum(a) fmt.Printf("计算之和: %d\n", res3) //函数调用 fmt.Println("开始调用A函数") A().原创 2021-08-31 18:26:08 · 154 阅读 · 0 评论 -
13 - Go 函数Debug调试
Go 函数Debug调试双击打断点Debug模式执行执行函数原创 2021-08-31 13:24:35 · 689 阅读 · 0 评论 -
12 - Go for循环结构
package mainimport "fmt"func main(){ //输出10次我非常喜欢Go语言 for i:=0;i<=10;i++{ fmt.Println("我非常喜欢Go语言",i) } //问题:1--100的和 var sum int= 0 for i:=1;i<=100;i+=2 { sum+=i } fmt.Println(sum)}原创 2021-08-24 13:30:31 · 141 阅读 · 0 评论 -
11 - Go switch选择结构
swicth选择结构package mainimport "fmt"func main(){ fmt.Println("==========基本使用==========") fmt.Println("请输入位置方向:") var position string fmt.Scanf("%s",&position) fmt.Println("您输入的变量字符串是:"+position) switch position { case "L": fmt.Println("左转.原创 2021-08-23 13:55:36 · 156 阅读 · 0 评论 -
10 - Go if选择结构
Go学习之 if选择结构/*选择结构也称为判断结构,如果满足条件才能做什么事情*/package mainimport "fmt"func main(){ fmt.Println("请输入您的年龄:") var age int fmt.Scanf("%d",&age) if age >=18 { fmt.Println("您已经是成年了!") if age >= 60 { fmt.Println("您已经是老年了") } else { .原创 2021-08-21 21:54:06 · 166 阅读 · 0 评论 -
09 - Go 其他运算符
package mainimport ( "fmt" "unsafe")func main(){ a := 123 fmt.Println(&a) //取变量的内存地址,是随机分配的,每一次都不一样使用二进制保存地址 d:=123 st:="123" //unsafe.Sizeof是输出变量占用内存的大小单位是byte字节 fmt.Println(unsafe.Sizeof(d),unsafe.Sizeof(st)) fmt.Println("===========.原创 2021-08-20 13:30:05 · 208 阅读 · 0 评论 -
08 - Go 基本运算符
Go 语言学习基本运算符的使用/* 基本运算符包括:1、算术运算符 2、赋值运算符 3、逻辑运算符 4、关系运算符 1、算术运算符有哪些 + 加 实例 10 + 5 结果 15 - 减 实例 10 - 5 结果 5 * 乘 实例 10 * 5 结果 50 / 除 实例 10 / 5 结果 2 % 取模(取余) 10 % 5 结果 0 ++ 后自增(没有前自增) a:=0; a++ 结果 a=1 -- 后自减(没有后自减) a.原创 2021-08-19 13:05:04 · 160 阅读 · 0 评论 -
07 - Go 枚举常量
Go 枚举常量/* Go 语言定义枚举类型使用 iota 关键字 它默认开始值是0,const中每增加一行加1 枚举类型的常量使用 iota 常量生成器初始化,用于生成一组相似规则的初始化常量*/package mainimport "fmt"func main(){ const PI float32 = 3.14 const pi = 3.14 //可以在初始化不指定常量的类型 fmt.Println(PI,pi) //GO 为了提高代码的阅读性,使用()简化书写 co.原创 2021-08-18 14:06:28 · 219 阅读 · 0 评论 -
06 - Go 常量
/*常量:是在程序编译阶段就确定下来的值,且在运行时无法改变的值,例如圆周率;在Go程序中,常量可以是数值类型(包括整型、浮点型和复数类型)、布尔类型、字符串类型等常量的定义使用关键字 const*/package mainimport "fmt"func main() { var number int = 123 number = 456 fmt.Println(number) /* const num int num=123 此处会报错常量在初始化的原创 2021-08-17 13:11:26 · 135 阅读 · 0 评论 -
05 - Go fmt包是处理格式化输出和输入
//fmt包是处理格式化输出的;unsafe包可以查询变量的长度//%d 格式化整数、%s 格式化字符串、%T 使用Go语言输出值的类型package mainimport ( "fmt" "unsafe")func main() { name := "小明" score := 98 fmt.Println("姓名:" + name + "分数:" + string(score)) fmt.Printf("姓名:%s,分数:%d \n", name, score) //查询变量的原创 2021-08-16 15:01:07 · 211 阅读 · 0 评论 -
04 - GO 变量的定义
//go语言变量的定义/*1、声明变量就是创建一个变量,并且指定该变量存储什么类型的数据2、go生命变量的语法是: var 变量名 变量类型3、输出变量的值的时候,不能给变量添加引号4、int 默认值是0*/package mainimport "fmt"func main(){ var a int //声明一个int的变量 默认值是0 fmt.Println(a) a = 100 //变量的赋值 fmt.Println(a) var b int = 200 //变量的原创 2021-08-13 20:03:07 · 378 阅读 · 0 评论 -
03 - Go 语言变量的定义
Go 语言变量的定义//go语言变量的定义package mainimport "fmt"func main(){ var name string = "kk" //定义了类型,并且初始化了值 var zeroString srring //定义变量类型,但不初始化值,默认系统初始化值是空字符串 var typeString = "kkk" //定义变量省略类型,不能省略初始化值;通过对应的值类型推到变量的类型 shortString := "kkkk" //短声明.原创 2021-08-07 21:55:22 · 150 阅读 · 1 评论 -
02 - Go 变量的作用域
变量的作用域//变量的作用域package mainimport "fmt"//单行注释 包级变量var packageVar string = "pachage var"func main(){ //函数级别的变量 var funVar string = "func var" fmt.Println(packageVar,funVar) /* 这是多行注释 以下是使用代码块功能 */ { var blockVar string = "block var" fm.原创 2021-08-07 21:49:32 · 116 阅读 · 0 评论 -
01 - Go 语言环境安装
01 - Go 语言环境安装go语言学习第一天1、下载 windows 安装包安装完成后验证是否安装成功使用 cmd 进入 windows 的终端输入 go env2、修改 go 的环境代理配置由于默认 go 环境使用的下载包的地址是国外的地址,我们国内下载不方便,因此设置代理很有必要。国内比较好的代理如下:七牛云赞助支持的export GOPROXY=https://goproxy.cn阿里云export GOPROXY=https://mirrors.aliy.原创 2021-08-04 15:19:27 · 168 阅读 · 2 评论