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

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

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

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

原创 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
2333

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

原创 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
2393

原创 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
581
原创 nginx中多个server块共用upstream会相互影响吗
nginx中经常有这样的场景,多个server块共用一个域名。如:upstream有2个以上的域名,nginx配置两个server块,共用一个upstream配置。那么,如果其中一个域名发生"no live upstreams while connecting to upstream"错误,会不会影响另一个域名呢?
2024-01-11 21:18:30
749
原创 glog_bash:在bash中优雅输出日志
官方仓库:https://github.com/GuoFlight/glog_bash 。下载其中的glog_bash.sh即可。这是专门用于bash脚本中的logger,名为glog_bash。其中,g for 郭。如果有帮助到你,欢迎Star。有任何需求和问题,可以联系我guoo@outlook.com。
2023-06-10 00:37:40
1090
原创 用go模拟键盘输入
仅供学习使用哈,不要用来开gua。代码仓库:https://github.com/GuoFlight/gkeybd (本人仓库,欢迎留言)
2023-05-06 22:46:06
532
原创 一些实用的职场理论
有理论知识作为指导,可以提升自己的工作效率,工作质量,让自己的专业能力最大程度地发挥。养成习惯,可有效提升自己的三原力:理解力、表达力、影响力。长期进化,会改变一个人的思维方式,乃至整个人生的态度。
2023-03-03 01:02:44
207
原创 Mac监控键盘输入并执行动作
电脑的安全是非常重要的,特别是里面的敏感数据,若是被有心之人利用,那后果不堪设想。所以我们部门定下了一个规矩,谁离开工位要是不锁屏,就可以在部门群发送一个消息:我请大家吃鸡翅。oh,技术出身怎么可以让这种事情发生。
2023-02-26 13:03:58
1348
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
682
原创 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
435
原创 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
3345
原创 支持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
1165
原创 链表知识整理
链表定义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
185
原创 Golang基于Mysql分布式锁实现集群主备
背景集群中如果需要主备,可以基于Redis、zk的分布式锁等实现,本文将介绍如何利用Mysql分布式锁进行实现。原理数据库中包含数据字段(此处为Master的主机名)、版本号和上一次更新时间。Master不断上传自己的心跳,即刷新数据库中的"更新时间"。上一次更新时间超过了一定时间,则认为Master已Down,则可以抢Master。抢Master和更新心跳时,版本号+1,要判断版本号是否与上一次读取的数据相同。如果相同,则修改成功。如果不相同,则说明Master已经被其他主机抢走。数据库
2022-02-18 00:36:56
744
原创 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
1089
原创 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
2339
原创 Bloom Filter布隆过滤器
简介本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilistic data structure),特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”。相比于传统的 List、Set、Map 等数据结构,它更高效、占用空间更少,但是缺点是其返回的结果是概率性的,而不是确切的。背景HashMap 的问题:HashMap可以在 O(1) 的时间复杂度内返回结果,效率奇高。但是 HashMap 的实现也有缺点,例如存储容量占比高,考虑到负载因子的存
2022-01-02 01:09:17
536
转载 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
3263
5
原创 解决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
8840
原创 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
2943
原创 k8s健康检查(探针Probe)之LivenessProbe、ReadinessProbe和StartupProbe
本文章未经过严格验证,如有错误,辛苦指出。背景来看看下面几个场景:在服务滚动部署的过程中,有些容器虽然启动了,但是内部的服务却暂时没有启动,这个时候就不能接流。集群正常服务时,也会出现容器死掉问题,如宿主机故障、资源不足、下游故障等。这个时候容器也需要从endpoints摘除,进行restart等动作。Liveness、Readiness和Startup可以比较优雅地解决这些问题。...
2021-10-23 16:52:47
1921
原创 k8s中的亲和性、污点与容忍(调度到不同的宿主机)
本文章并未经过严格实践,如有错误,辛苦指出。背景服务需要多副本,来保证高可靠、多活。那么问题来了,假如这些副本都在同一个宿主机上,或者同一个交换机下…宿主机、交换机其中一项坏掉了,那多副本还有什么意义?怎么解决呢?需要用到k8s中的亲和性和反亲和性。将容器调度到不同的宿主机即可。nodeSelector标签实践:Pod只能调度到某些node上背景:如某些服务对磁盘读写要求很高,则需要调度到SSD或nvme硬盘的宿主机上。示例:apiVersion: v1kind: Podmeta
2021-10-08 00:22:31
1115
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
192
原创 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
2786
原创 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
836
原创 什么是跨域?跨域解决方法
为什么会出现跨域问题出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)什么是跨域当前页面url被请求页面url是
2021-04-22 11:58:21
180
原创 解决登录服务器报错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
513
原创 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
413
原创 解决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
2348
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关注的人