- 授权协议: Apache
- 开发语言: Google Go
- 操作系统: Windows
- 软件首页: https://github.com/dynport/gossh
- 官方下载: https://github.com/dynport/gossh
软件介绍
gossh 是 Go 语言实现 SSH 通讯的开发包。
示例代码:
package main
import (
"github.com/dynport/gossh"
"log"
)
// returns a function of type gossh.Writer func(...interface{})
// MakeLogger just adds a prefix (DEBUG, INFO, ERROR)
func MakeLogger(prefix string) gossh.Writer {
return func(args ...interface{}) {
log.Println((append([]interface{}{prefix}, args...))...)
}
}
func main() {
client := gossh.New("some.host", "user")
// my default agent authentication is used. use
// client.SetPassword("<secret>")
// for password authentication
client.DebugWriter = MakeLogger("DEBUG")
client.InfoWriter = MakeLogger("INFO ")
client.ErrorWriter = MakeLogger("ERROR")
defer client.Close()
rsp, e := client.Execute("uptime")
if e != nil {
client.ErrorWriter(e.Error())
}
client.InfoWriter(rsp.String())
rsp, e = client.Execute("echo -n $(cat /proc/loadavg); cat /does/not/exists")
if e != nil {
client.ErrorWriter(e.Error())
client.ErrorWriter("STDOUT: " + rsp.Stdout())
client.ErrorWriter("STDERR: " + rsp.Stderr())
}
}
运行结果:
2013/08/25 00:31:40 DEBUG connecting some.host 2013/08/25 00:31:41 INFO [EXEC ] uptime 2013/08/25 00:31:41 DEBUG 22:31:41 up 375 days, 10:44, 0 users, load average: 0.09, 0.13, 0.22 2013/08/25 00:31:41 INFO => 0.944143 2013/08/25 00:31:41 INFO map[stdout:72 bytes stderr:0 bytes runtime:0.944202 status:0] 2013/08/25 00:31:41 DEBUG already connected 2013/08/25 00:31:41 INFO [EXEC ] echo -n $(cat /proc/loadavg); cat /does/not/exists 2013/08/25 00:31:41 DEBUG 0.09 0.13 0.22 1/455 23396 2013/08/25 00:31:41 ERROR cat: /does/not/exists 2013/08/25 00:31:41 ERROR : No such file or directory 2013/08/25 00:31:41 INFO => 0.067075 2013/08/25 00:31:41 ERROR Process exited with: 1. Reason was: () 2013/08/25 00:31:41 ERROR STDOUT: 0.09 0.13 0.22 1/455 23396 2013/08/25 00:31:41 ERROR STDERR: cat: /does/not/exists: No such file or directory
The Pragmatic Programmer
Andrew Hunt、David Thomas / Addison-Wesley Professional / 1999-10-30 / USD 49.99
本书直击编程陈地,穿过了软件开发中日益增长的规范和技术藩篱,对核心过程进行了审视――即根据需求,创建用户乐于接受的、可工作和易维护的代码。本书包含的内容从个人责任到职业发展,直至保持代码灵活和易于改编重用的架构技术。从本书中将学到防止软件变质、消除复制知识的陷阱、编写灵活、动态和易适应的代码、避免出现相同的设计、用契约、断言和异常对代码进行防护等内容。一起来看看 《The Pragmatic Programmer》 这本书的介绍吧!
