实现思路:win10电脑安装openssh客户端软件用于ssh远程linux,golang使用robotgo模拟键盘 *** 作输入shell命令,并截图。
win10安装openssh:
golang代码:
package main
import (
"strings"
"time"
"github.com/go-vgo/robotgo"
)
func main() {
robotgo.KeyTap(`r`, `command`)
time.Sleep(time.Second * 5)
robotgo.TypeStr("ssh root@192.168.1.100") //服务器用户名与对应IP
time.Sleep(time.Second * 5)
robotgo.KeyTap("enter")
time.Sleep(time.Second * 15)
robotgo.TypeStr("Fwqmm@2022") //服务器密码
time.Sleep(time.Second * 5)
robotgo.KeyTap("enter")
time.Sleep(time.Second * 5)
robotgo.TypeStr("su - oracle")
time.Sleep(time.Second * 5)
robotgo.KeyTap("enter")
time.Sleep(time.Second * 5)
robotgo.TypeStr("cd ")
time.Sleep(time.Second * 5)
robotgo.KeyTap("enter")
time.Sleep(time.Second * 5)
robotgo.TypeStr("df -h")
robotgo.KeyTap("enter")
width, height := robotgo.GetScreenSize()
bitmap := robotgo.CaptureScreen(0, 0, width, height)
now := time.Now()
formatNow := now.Format("15:04:05.000")
sname1 := strings.Replace(formatNow, ":", "", -1)
sname2 := strings.Replace(sname1, ".", "", -1)
robotgo.SaveBitmap(bitmap, sname2+".png")
time.Sleep(time.Second * 5)
robotgo.TypeStr("exit")
time.Sleep(time.Second * 5)
robotgo.KeyTap("enter")
time.Sleep(time.Second * 5)
robotgo.TypeStr("exit")
time.Sleep(time.Second * 5)
robotgo.KeyTap("enter")
}
编译时,使用go build -ldflags "-extldflags \"-static\" -s -w",就能链接必要的静态库,程序可在其他电脑正常运行。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)