虽然几年前主流的linux发行版都已换上了systemd,不过其最近确实问题不断。一爆就出了三个漏洞:内存损坏漏洞 CVE-2018-16864 与 CVE-2018-16865、信息泄露漏洞 CVE-2018-16866。最后有同事又反映连几台主机的ssh比较慢。看了下现象和之前处理过的《阿里云ssh连接慢问题……
Continue reading
一、读写xml文件 golang的”encoding/xml”模块有 xml.Unmarshal() 方法和 xml.Marshal() 方法。前者用于格式化读取 xml 文件,后者用于格式化写 xml 文件。操作之前我们先准备一个测试文件notes.xml,内容如下: <pre data-language="XML">```markup <note> <to>Admin</to> <from>www.361way.com</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> #### 1、 xml.Unmarshal()读 xml 代码如下: ```go package main import ( "encoding/xml" "fmt"……
Continue reading
手欠把自用的一台宿主机的OS进行yum update 升级,升级的同时kvm也进行了升级。升级后,发现虚拟化服务libvirtd启不来了,报错:error : virModuleLoadFile:53 : internal error: Failed to load module ‘/usr/lib64/libvirt/storag e-backend/libvirt_storage_backend_r……
Continue reading
我们通常使用众所周知的通信工具(如OpenSSH和Putty等)访问任何远程服务器。但是,有一件重要的事情是,我们不能使用防火墙或只允许HTTPS流量的防火墙后面的工具访问远程系统。别担心!我们仍然有一些选项可以访问您的远程系统,即使您在防火墙后面。此外,您不需要安装任何通信工具……
Continue reading
golang默认使用的字符是UTF8,不过很多网页使用的是gbk编码,这时候就需要通过编码进行转换。具体代码如下: 1package main 2import "golang.org/x/text/encoding/simplifiedchinese" 3type Charset string 4const ( 5 UTF8 = Charset("UTF-8") 6 GB18030 = Charset("GB18030") 7) 8func ConvertByte2String(byte []byte, charset Charset) string { 9 var str string 10 switch charset { 11 case GB18030: 12 var decodeBytes,_=simplifiedchinese.GB18030.NewDecoder().Bytes(byte) 13 str= string(decodeBytes) 14 case UTF8: 15 fallthrough 16 default: 17 str = string(byte) 18 } 19 return str 20}……
Continue reading
golang sync包里提供了 Locker接口、互斥锁 Mutex、读写锁 RWMutex用于处理并发过程中可能出现同时两个或多个协程(或线程)读或写同一个变量的情况。 一、为什么需要锁 在并发的情况下,多个线程或协程同时去修改一个变量。使用锁能保证在某一时间点内,只有一个协程或线程修改这一变量,……
Continue reading
golang中有2种方式同步程序,一种使用channel,另一种使用sync.WaitGroup。最近在使用golang写一个比较简单的功能 —- host1主机需要先在本机起一个TCP监听,起来后给host2主机发送指令,让其主动给host1主机监听的端口进行连接。最终使用了syn……
Continue reading
2013年我写过一篇博文《linux下自建ssh堡垒机》,其核以是通过chroot和google Authenticator实现的。最近在研究一些web ssh平台时,无意中注意到一个python写的类似于chroot限定shell产品lshell 。本篇就记录下该工具的安装和使用。 一……
Continue reading
GateOne 是一款使用 HTML5 技术编写的网页版 SSH 终端模拟器。基于现代的 HTML5 技术,无需任何浏览器插件、支持多个 SSH 进程、可以嵌入到其他任意应用程序中、支持使用 JavaScript,Python 甚至纯 CSS 编写的插件、支持 SSH 进程副本,打开多个进程而无需重复输入密码、 支持各种服务器端的日志功能,支持 Keberos-based 单点登录……
Continue reading
尽管 Go 编译器产生的是本地可执行代码,这些代码仍旧运行在 Go 的 runtime(这部分的代码可以在 runtime 包中找到)当中。这个 runtime 类似 Java 和 .NET 语言所用到的虚拟机,它负责管理包括内存分配、垃圾回收、栈处理、goroutine、channel、切片(slice)、map 和反射(reflection)……
Continue reading