- 博客(209)
- 资源 (17)
- 收藏
- 关注

原创 Shell脚本实现Linux回收站
前言到目前为止,非图形化的Linux还没有回收站的命令。那么,我们如果不小心将某一个文件删掉了,那就只能数据恢复了。如果这也不行,那就等着哭吧。如果你是妹子,那我这儿有肩膀。实现回收站功能的Shell脚本vim del #之所以后面没有.sh后缀,是为了让它更像一个命令。#!/bin/bash#脚本作用:Linux的回收站#作者:郭老师#blog: https://blo...
2019-09-22 18:50:06
1000

原创 /etc/shadow文件破解,密码破解,md5,SHA256,SHA512破解
环境Kali系统John the Ripper密码破解者shadow文件解析文件的格式为:{用户名}:{加密后的口令密码}:{口令最后修改时间距原点(1970-1-1)的天数}:{口令最小修改间隔(防止修改口令,如果时限未到,将恢复至旧口令):{口令最大修改间隔}:{口令失效前的警告天数}:{账户不活动天数}:{账号失效天数}:{保留}其中{加密后的口令密码}的格式为 $id$sa...
2019-07-18 16:18:03
22021
18

原创 Maven私有仓库Nexus搭建
背景每一个互联网公司都会有自己的开发团队。如果是JAVA团队,那么就会有公司里开发的jar包。怎么管理jar包是一个不可逃避的问题。搭建Maven私有仓库Nexus是一个不错的解决方案。环境CentOS7JDK需要安装jdk,不会的小伙伴可以参考我的另一篇博客:Linux下JDK安装Nexus下载Nexus有两种版本:Nexus Pro为专业版,需要收取一定费用。这里...
2019-05-27 19:16:29
302

原创 Kubernetes(K8s)之Pod
Pod介绍Pod是K8s的最小调度单位内部是一组Container容器,根容器Pause和其他业务容器拥有唯一Pod IP小贴士:在生产环境中,极少单独Pod的情况一般都是使用Deployment等方式对Pod进行管理Pod调度实例1.编辑yaml文件vim myweb1.yaml #添加以下内容apiVersion: v1 #api版本kind: Pod ...
2019-04-25 14:50:17
2253

原创 Kubernetes(K8s)最新版搭建
Kubernetes简单介绍Kubernetes意为舵手,简称K8s。前身是Google的Borg。所以一开源就吸引了一大批注意力。因为谷歌,所以墙。在国内搭建K8s非常头疼。下面我就来介绍一下,怎么绕过墙来部署k8s。环境准备节点操作系统IPmasterCentOS7192.168.191.138worker1CentOS7192.168.19...
2019-04-19 17:13:06
4509

原创 Docker私有仓库之Harbor的搭建与管理维护
Harbor介绍Harbor是一个开源的私有Docker仓库,开源在著名的代码托管平台github上。可以在这里查看:harbor_github下面详细介绍Harbor的安装与管理维护。安装环境CentOS7安装Docker# step 1: 安装必要的一些系统工具:sudo yum install -y yum-utils device-mapper-persistent...
2019-04-19 10:14:30
2261

原创 TCP三次握手与四次挥手
TCP三次握手和四次挥手是可靠传输的保证。三次握手建立连接有三步:1.Client发送SYN至Server2.Server收到SYN之后,对此SYN进行回应:发送包含ACK和SYN的数据包至Client。3.Client也对此SYN进行回应,发送ACK至Server。四次挥手释放连接有四步:1.客户端发送FIN至Server。2.Server对此FIN进行回应:发送ACK...
2019-04-14 20:14:06
342
原创 用go模拟键盘输入
仅供学习使用哈,不要用来开gua。代码仓库:https://github.com/GuoFlight/gkeybd (本人仓库,欢迎留言)
2023-05-06 22:46:06
12
原创 一些实用的职场理论
有理论知识作为指导,可以提升自己的工作效率,工作质量,让自己的专业能力最大程度地发挥。养成习惯,可有效提升自己的三原力:理解力、表达力、影响力。长期进化,会改变一个人的思维方式,乃至整个人生的态度。
2023-03-03 01:02:44
69
原创 Mac监控键盘输入并执行动作
电脑的安全是非常重要的,特别是里面的敏感数据,若是被有心之人利用,那后果不堪设想。所以我们部门定下了一个规矩,谁离开工位要是不锁屏,就可以在部门群发送一个消息:我请大家吃鸡翅。oh,技术出身怎么可以让这种事情发生。
2023-02-26 13:03:58
697
2
原创 Golang支持重试的http客户端ghttp
简介官方仓库:https://github.com/GuoFlight/ghttp重试的逻辑依赖了github.com/avast/retry-go入门client := ghttp.Client{ Method: ghttp.MethodGet, Url: "https://www.baidu.com",}res, err := client.Do()if err != nil { fmt.Println(err) return}fmt.Printl
2022-05-15 00:37:27
322
原创 Go1.13的坑:无法结束Goroutine
背景作为运维小哥,想用Go模拟Cpu占用100% 1秒钟,但是在Go1.13上遇到了问题,1s后Goroutine不会停止。只要用了for{},Goroutine就无法结束,即使主Goroutine结束。代码package mainimport ( //"fmt")import "time"func Test1() { for { //fmt.Println("hello") //随便在for循环中加个语句,就可以停止了 }}func m
2022-04-17 01:16:11
256
原创 golang执行命令 && 实时获取输出结果
背景golang可以获取命令执行的输出结果,但要执行完才能够获取。如果执行的命令是ssh,我们要实时获取,并执行相应的操作呢?示例func main() { user := "root" host := "172.16.116.133" //获取执行命令 cmd := exec.Command("ssh", fmt.Sprintf("%s@%s", user, host)) cmd.Stdin = os.Stdin var wg sync.WaitGroup wg.Add(2)
2022-04-17 01:04:50
2886
原创 支持TraceID、错误文件、错误行的第三方golang库:gerror
Gerr库简介Golang第三方库官方仓库:https://github.com/GuoFlight/gerr特点:兼容golang原生error库gerr会自动生成traceID,方便排查整条链路的错误。gerr会自动获取错误发生的文件名+函数名+行号,方便问题的定位。安装go get github.com/GuoFlight/gerrDemo详见官方Demo:https://github.com/GuoFlight/gerr/tree/main/examplepack
2022-04-01 22:42:40
748
原创 链表知识整理
链表定义type Node struct { Data int Next *Node}遍历链表func Traverse(head *Node){ for i := head;i!=nil;i=i.Next{ fmt.Printf("%d ",i.Data) } fmt.Println()}链表反转func Reverse(head *Node)(headNew *Node){ if head==nil || head.Next==nil{ return head }
2022-03-03 14:58:11
52
原创 Golang基于Mysql分布式锁实现集群主备
背景集群中如果需要主备,可以基于Redis、zk的分布式锁等实现,本文将介绍如何利用Mysql分布式锁进行实现。原理数据库中包含数据字段(此处为Master的主机名)、版本号和上一次更新时间。Master不断上传自己的心跳,即刷新数据库中的"更新时间"。上一次更新时间超过了一定时间,则认为Master已Down,则可以抢Master。抢Master和更新心跳时,版本号+1,要判断版本号是否与上一次读取的数据相同。如果相同,则修改成功。如果不相同,则说明Master已经被其他主机抢走。数据库
2022-02-18 00:36:56
498
原创 ServiceMesh、SideCar和Istio
Service Mesh简介Service Mesh直译过来就是服务网格,而他的架构就是一个个微服务组成的网络。Sidecar简介Service Mesh中的节点就是Sidecar节点。sidecar直译过来就是这种摩托车,意为业务容器和非业务容器分离,如agent服务全部部署在非业务容器中。sidecar proxy的作用和好处有很多:sidecar proxy能接管对应服务的入流量和出流量,所以sidecar proxy是有流量管理的功能,有了这个能力,可以做太多太多的事情了,如放火
2022-01-23 17:13:37
736
原创 Golang线程池gpool
背景golang中使用并发要考虑很多问题,如控制并发量、等待Goroutine执行完毕等。看下面一段代码:var wg sync.WaitGroupcount := 10wg.Add(count)limitGoroutineCount := make(chan int,5)for i:=0;i<count;i++{ go func(a int){ limitGoroutineCount <- 1 if time.Now().Second()%4==0{ wg.Don
2022-01-03 16:06:44
1663
原创 Bloom Filter布隆过滤器
简介本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilistic data structure),特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”。相比于传统的 List、Set、Map 等数据结构,它更高效、占用空间更少,但是缺点是其返回的结果是概率性的,而不是确切的。背景HashMap 的问题:HashMap可以在 O(1) 的时间复杂度内返回结果,效率奇高。但是 HashMap 的实现也有缺点,例如存储容量占比高,考虑到负载因子的存
2022-01-02 01:09:17
291
转载 LVS详解
LVS简介LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。LVS名词解释DS:director server,即负载均衡器,根据一定的负载均衡算法将流量分发到后端的真实服务器上.RS:real server 真实的提供服务的server,可被DS划分到一个或多个负载均衡组.BDS:backup director server,为了保证负载均衡器的高可用衍生
2022-01-01 22:48:33
1830
原创 解决Vue中使用history路由模式出现404的问题
背景vue中默认的路由模式是hash,会出现烦人的符号#,如http://127.0.0.1/#/。改为history模式可以解决这个问题,但是有一个坑是:强刷新、回退等操作会出现404。Vue改用History路由模式修改src/router/index.jsexport default new Router({ mode: 'history', //改为history模式 routes: [ { path: '/pub', component:Emp
2021-11-21 00:26:41
5947
原创 nginx 报错整理
【关键词】version 1021004 instead of 1020001报错示例:nginx: [emerg] module “/usr/lib64/nginx/modules/ngx_http_headers_more_filter_module.so” version 1021004 instead of 1020001 in /etc/nginx/nginx.conf:9场景:nginx配置文件使用load_module /path/to/modules/ngx_http_head
2021-11-14 00:49:07
2247
原创 k8s健康检查(探针Probe)之LivenessProbe、ReadinessProbe和StartupProbe
本文章未经过严格验证,如有错误,辛苦指出。背景来看看下面几个场景:在服务滚动部署的过程中,有些容器虽然启动了,但是内部的服务却暂时没有启动,这个时候就不能接流。集群正常服务时,也会出现容器死掉问题,如宿主机故障、资源不足、下游故障等。这个时候容器也需要从endpoints摘除,进行restart等动作。Liveness、Readiness和Startup可以比较优雅地解决这些问题。...
2021-10-23 16:52:47
1110
原创 k8s中的亲和性、污点与容忍(调度到不同的宿主机)
本文章并未经过严格实践,如有错误,辛苦指出。背景服务需要多副本,来保证高可靠、多活。那么问题来了,假如这些副本都在同一个宿主机上,或者同一个交换机下…宿主机、交换机其中一项坏掉了,那多副本还有什么意义?怎么解决呢?需要用到k8s中的亲和性和反亲和性。将容器调度到不同的宿主机即可。nodeSelector标签实践:Pod只能调度到某些node上背景:如某些服务对磁盘读写要求很高,则需要调度到SSD或nvme硬盘的宿主机上。示例:apiVersion: v1kind: Podmeta
2021-10-08 00:22:31
771
2
原创 正则表达式
本文章逐渐更新最小匹配背景:aabab文本中,想要匹配aab和ab,而不是一次匹配出aabab。最小匹配:在pattern后加问号?即可,就会最小匹配了示例:a.*?b匹配最短的,以a开始,以b结束的字符串。如果把它应用于aabab的话,它会匹配aab(第一到第三个字符)和ab(第四到第五个字符)。参考文档:https://blog.csdn.net/zcc_0015/article/details/80744601那年,郭少在京城...
2021-09-27 16:29:32
73
原创 nginx反向代理与长连接
说明本文章很多内容只是从网上参考+个人经历的理解所得,暂时没有经过实证,故仅供参考。实现原理nginx反向代理的长连接有两个方面:client与nginx的长连接。nginx与upstream的长连接。这两点并不是都需要配置,按需配置即可,你可以只配置clint与nginx的长连接。client与nginx的长连接http { keepalive_timeout 120s 120s; #参数1:client与nginx的超时时间。参数2:可选、在响应的header中设置一个
2021-09-25 23:05:36
2210
原创 Mac安装软件报错整理
报错:error: Bison version 2.5 or higher must be installed on the system!场景:编译安装thrift的时候由于mac本身的bison版本过低就会报这个错误。解决:sudo port install bison (需要安装macport)验证:重新打开终端输入bison --version...
2021-04-29 21:06:46
559
原创 什么是跨域?跨域解决方法
为什么会出现跨域问题出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)什么是跨域当前页面url被请求页面url是
2021-04-22 11:58:21
91
原创 解决登录服务器报错WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
背景登录服务器的时候报错:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!Someone
2021-04-03 11:33:55
323
原创 Core Dump排查
背景上次在CentOS8上用Python2运行程序。别问我为啥用了CentOS8了还用Py2。TM代码山不能动啊。然后,Core Dump了…什么?Python还能Core Dump?可能CentOS8和Python2不配…奶奶个熊,花了我一个星期。怎么排查Core Dump?一直觉得Core Dump的东西不是人看的。(其实是我太垃圾.jpg)更好的方法:总有一个语句是导致Core Dump的。导致了Core Dump程序就会退出,然后会生成Core文件。重点在退出,不是在生
2021-04-02 16:39:26
217
原创 解决crontab无日志输出的问题,docker容器中使用rsyslogd
现象在容器中使用crontab,任务明明执行了,但是却没有日志输出。原因crond调用rsyslog服务写日志。但在容器环境,crontab写日志所需的rsyslog服务默认并不启动,或并没有安装。解决方案:安装并启动rsyslogd安装rsyslogyum -y install rsyslogrm -f /etc/rsyslog.d/listen.confvim /etc/rsyslog.conf $OmitLocalLogging offrsyslogd #启动日志服务
2021-03-19 14:28:53
1308
原创 Mac安装Mysql
地址:https://downloads.mysql.com/archives/workbench/提示:安装8.0.22版本没有问题,有些版本可能会导致意外退出。
2021-03-11 15:00:30
59
原创 Golang优化及bug排查
句柄数占用过多查看是否http客户端等是否忘记close。比如http.Client的defer close在return之后,导致没有关闭就return了。京城郭少将会持续更新~
2021-02-24 14:29:59
167
转载 cgi、fast-cgi和php-fpm介绍
一、cgi(Common Gateway Interface、通用网关接口): 早期的web服务器只能处理html等静态文件,但是随着技术的发展,出现了像java、php等动态语言。 web服务器处理不了,只能交给对应语言的解释器来处理,比如java或php的解释器。但是解释器如何与web服务器进行通信呢?为了解决不同的语言解释器(如java、php解释器)与web服务器通信,于是出现了cgi协议。只要按照cgi协议去编写程序,就能实现各语言解释器与web服务器的通信,比如php-cgi。二、fast
2021-02-19 19:05:25
225
原创 郭老师的K8s冰蚕毒掌
简介官方文档:https://www.kubernetes.org.cn/docsKubernetes简称K8s。K8s的前身是谷歌内部集群管理系统Borg。架构注意点K8s推荐使用etcd_v3。因为etcd_v3存储在磁盘中,而v2存储在内存中。k8s v1.11+已经弃用etcd_v2。...
2021-02-16 16:44:44
1040
1
原创 Linux信号量
查看信号量[root@localhost ~]# kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR111) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SI
2021-02-15 22:46:50
2182
6
Shell脚本实现回收站的功能 版本v1.1
2019-10-01
Shell脚本实现回收站的功能
2019-09-22
基于fping和python3多进程测试网络收敛时间.zip
2019-08-19
计算网络中断与网络恢复的时间差.py
2019-08-06
Docker-Compose-二进制运行程序
2019-04-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人