摘要:
在看一个mysql的helm-charts的时候,看到一段shell代码,才发现原来shell也能支持正则匹配。那很多场景就不需要用awk,grep这些了,会简洁很多。 demo1 if [[ abcfoobarbletch =~ 'foo(bar)bl(.*)' ]] then echo The 阅读全文
摘要:
容器就是一个特殊的进程,想要进入容器,先要找到容器的进程 # docker inspect --format '{{ .State.Pid }}' c054b1ef50345962 找到进程对应的namespace # cd /proc/5962/ns # ls -l lrwxrwxrwx 1 ro 阅读全文
摘要:
监控系统建设思维导图 可观测 1. 监控系统 Prometheus + grafana + alert 搭建方法网上很多,忽略。 2. 日志系统 loki,官方文档之外,可以参考“云原生小白”写的一系列loki的文章。https://blog.csdn.net/weixin_49366475 3. 阅读全文
摘要:
云原生时代的监控告警 监控是运维工作的基础。随着云原生的快速发展,监控系统近几年也快速向prometheus这类时间序列方案发展。用时间序列数据存储监控指标,可以很方便且快速的收集指标并对数据进行处理与计算,但由于指标量变得庞大,对运维来说用这些指标数据做出合理准确的告警就成为了一个难点。 传统的阈 阅读全文
摘要:
2021年12月27日第一次处理 初步排查 收到CPU使用率100%的监控告警 登陆主机,发现一个陌生进程,进程名为SloH4auG,怀疑是木马。 ps -ef|grep SloH4auG 找到pid cd /proc/7407/ && ll 查看进程的exec,当时没截图,发现执行程序的文件名是乱 阅读全文
摘要:
package main import "fmt" /* 1.值类型:存储的是数值本身,数据传递给其他变量时传递的是数据的副本。 int,float,string,bool,array,struct 2.引用类型:存储的是数据的内存地址,数据传递时传递的地址。默认零值是nil slice,map,c 阅读全文
摘要:
package main import "fmt" /* 切片: 不定长的数组,是引用类型的数据,指向一个底层数组。 */ func main() { //切片的创建和访问 var s1 []int fmt.Println(s1) s2 := []int{1, 2, 3, 4} fmt.Printl 阅读全文
摘要:
package main import "fmt" /* 数组: array数组属于值类型,存储的是数值本身,数据传递给其他变量时传递的是数据的副本。 slice,map等属于引用类型,存储的是数据的内存地址。 */ func main() { //数组创建和访问 var arr1 [4]int / 阅读全文
摘要:
package main import "fmt" func main() { a := 10 LOOP: for a < 20 { if a == 15 { a += 1 goto LOOP } fmt.Printf("a的值为:%d\n", a) a++ } fmt.Println(" ") f 阅读全文
摘要:
package main import "fmt" /* for循环:某些代码会多次的执行 */ func main() { for i := 1; i <= 3; i++ { fmt.Println(i, "hello world") } //省略1,3表达式,只保留2表达式。相当于while条件 阅读全文