- Notifications
You must be signed in to change notification settings - Fork1
zhiminwen/magetool
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
go get github.com/zhiminwen/magetool
import ("github.com/zhiminwen/magetool/shellkit""github.com/zhiminwen/magetool/sshkit")
UseMage to organize the tasks together
// +build magepackage mainimport ("os""github.com/zhiminwen/magetool/shellkit")funcinit() {os.Setenv("MAGEFILE_VERBOSE","true")}//Run CmdfuncRunCmd() {shellkit.Execute("cmd","/c","type test.log & sleep 10")}//dirfuncDir() {shellkit.Execute("cmd","/c","time /t 1>&2 & exit 1")}
- Use Shellkit.Execute() to run local command.
- Use Shellkit.Capture to capture command output.
Init the client
//Use passwordclient1:=sshkit.NewSSHClient("192.168.5.10","22","ubuntu","password","")//Use private keys2:=sshkit.NewSSHClient("192.168.5.10","22","ubuntu","","mykeyfile"// Use a slice of the clientvarservers []*sshkit.SSHClientservers=append(servers,sshkit.NewSSHClient("192.168.5.10","22","ubuntu","password",""))servers=append(servers,sshkit.NewSSHClient("192.168.5.10","22","ubuntu2","password",""))
Execute a command
// Run against a single clientclient1.Execute("id; hostname")//Run against slice of serverssshkit.Execute(servers,"id; hostname")
Capture a result
result,err:=client.Capture("hostname")
sshkit.ExecuteFunc(servers,func(t*sshkit.SSHClient) {id,err:=t.Capture("id -u")iferr!=nil {log.Printf("Failed to get id:%v",err)return }ifid=="1000" {return }cmd:=fmt.Sprintf("echo %s; hostname",id)t.Execute(cmd) })
Upload and Download
client1.Upload("example.txt","/tmp/example.txt")client1.Download("/etc/hosts","hosts.txt")
client1.Put(`This is a test content`, "mytest.txt")list, err := servers[0].Get("/etc/passwd")
Interact with command
client1.Execute(`rm -rf .ssh/known_hosts`)client1.ExecuteInteractively("scp ubuntu@ubuntu:/tmp/test.txt /tmp/test.txt.dupped",map[string]string{`\(yes/no\)`:"yes","password":"password", })
About
sshkit/rake in Golang
Topics
Resources
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
No releases published
Packages0
No packages published
Uh oh!
There was an error while loading.Please reload this page.