Go的SSH开发包gossh.zip

时间:2022-08-04 20:40:19
【文件属性】:

文件名称:Go的SSH开发包gossh.zip

文件大小:9KB

文件格式:ZIP

更新时间:2022-08-04 20:40:19

开源项目

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("") // 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 标签:gossh


【文件预览】:
gossh-master
----LICENSE(10KB)
----client.go(5KB)
----result.go(761B)
----log_writer.go(460B)
----config.go(703B)
----.gitignore(252B)
----Makefile(84B)
----README.md(3KB)
----util.go(49B)

网友评论