golang channel与sync.WaitGroup同步 2019-01-03 | perl/php/python/gawk/sed golang中有2种方式同步程序,一种使用channel,另一种使用sync.WaitGroup。最近在使用golang写一个比较简单的功能 —- host1主机需要先在本机起一个TCP监听,起来后给host2主机发送指令,让其主动给host1主机监听的端口进行连接。最终使用了syn…… Continue reading
golang runtime进程调度函数 2018-12-24 | perl/php/python/gawk/sed 尽管 Go 编译器产生的是本地可执行代码,这些代码仍旧运行在 Go 的 runtime(这部分的代码可以在 runtime 包中找到)当中。这个 runtime 类似 Java 和 .NET 语言所用到的虚拟机,它负责管理包括内存分配、垃圾回收、栈处理、goroutine、channel、切片(slice)、map 和反射(reflection)…… Continue reading
golang下慎用log.Fatal和log.Panic 2018-12-21 | perl/php/python/gawk/sed 在使用golang写代码时,在遇到err值判断的时候,我们经常会用到 log.Fatal 和 log.panic 将错误信息进行日志输出的情况,不过遇到的错误一般会有两种: 一种是确实影响到了程序后面的执行,前后关联性比较强; 另一种是程序关联性并不强,当前的执行不成功或报错并不影响后面的执行,或者该错误并不会影响正常输出…… Continue reading
su部分帐户免密码切换 2018-12-20 | perl/php/python/gawk/sed 一、需求 最近业务部分希望在几百台主机上安装python expect包(pexpect),向其了解了下需求,其需求是通过4a审计平台登陆到他们业务的任一主机后(默认是user1 用户登陆),其希望可以在user1下执行某命令后,可以向user2、user3、user4几个用户免密切换…… Continue reading
golang plugin插件的使用 2018-12-19 | perl/php/python/gawk/sed Go 1.8 为我们提供了一个创建共享库的新工具,称为 Plugins!同时官方文档也提示了:Currently plugins are only supported on Linux and macOS 。其可以应用如下场景: 通过plugin我们可以很方便的对于不同功能加载相应的模块并调用相关的模块; 也可以针对不同语言(英文、汉语、德语……)加载不同的语言so文件,…… Continue reading
golang TCP client自动重连 2018-12-13 | perl/php/python/gawk/sed 在 golang简易版TCP client server 篇中简单列了下golang下的c/s模式代码,不过遇到 server 端异常时, client端也就自动退出了,这里再给出一段自动重连的代码,实现无论server端如何,client始装循环下去。所以本篇的重点是client端的代码。 server 端代码 1package main 2import ( 3 "fmt" 4 "net" 5 "os" 6 "strings"…… Continue reading
golang简易版TCP client server 2018-12-12 | perl/php/python/gawk/sed 每个编程语言都会有socket类的编程,最常用的就是tcp c/s 和udp c/s,这里就使用golang实现一个简单的tcp server client程序,server会等待 client发送数据给他,server接收到数据后,再处理后回传给client 。具体效果如下图: simple-tcp-client-server server端代码如下: 1package…… Continue reading
golang toolkits包的使用 2018-12-03 | perl/php/python/gawk/sed 在查看open-falcon 项目源码时,经常会看到其引用了一个类库toolkits,而仔细查看该类库的作者为秦晓辉(UlricQin)— 原Open-Falcon主程,现滴滴云运维负责人 。所以有了这层关系就不难理解open-Falcon引用toolkits里很多代码的原因了吧。to…… Continue reading
golang ssh包的使用 2018-11-27 | perl/php/python/gawk/sed 本篇随接上文《golang expect包的使用》,在使用gexpect包发现很多问题之外,这里又尝试使用ssh [email protected]的思路进行用户切换。这里记录下具体的使用方法,遇到的ssh: must specify HostKeyCallback 问题的解法方法及最终使用过程中的问题。 一、ssh包crypto的安装 ssh使…… Continue reading
golang expect包的使用 2018-11-26 | perl/php/python/gawk/sed 最近和业务的相关人员对接某一需求时,其提出希望能在业务服务器上不给业务人员密码信息,而能通过执行某个命令后由usera变成userb。这个需求其实用expect 就可以实现,不过使用tcl 语言编写的脚本里密码还是以明文出现的,业务是想通过安装pexpect (python)包,通过生…… Continue reading