婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 如何使用Go語言實現遠程執行命令

如何使用Go語言實現遠程執行命令

熱門標簽:?兓? 電梯外呼訪客系統 騰訊外呼系統價格 谷歌便利店地圖標注 最短的地圖標注 百度地圖標注搜索關鍵詞 電銷機器人可以補救房產中介嗎 成都呼叫中心外呼系統平臺 浙江人工智能外呼管理系統

前言

遠程執行命令有什么用?為什么要遠程執行命令? 如果你只有2,3臺服務器需要管理的時候,遠程執行命令確實沒有沒多大作用,你可以登錄到每臺服務器上去完成各種操作。 當你的服務器大于3臺的時候,遠程執行的命令的方式就可以大大提高你的生產力了。

如果你有一個可以遠程執行命令的工具,那么就可以像操作單臺機器那樣操作多臺機器,機器越多,效率提高的越多。 遠程執行命令最常用的方法就是利用 SSH 協議,將命令發送到遠程機器上執行,并獲取返回結果。

一般命令

所謂一般命令,就是在一定時間內會執行完的命令。比如 grep, cat 等等。 執行命令的步驟是:連接,執行,獲取結果

連接

連接包含了認證,可以使用 password 或者 sshkey 2種方式來認證。下面的示例為了簡單,使用了密碼認證的方式來完成連接。

import ( 
 "fmt"
 "time"

 "golang.org/x/crypto/ssh"
)

func connect(user, password, host string, port int) (*ssh.Session, error) { 
 var (
 auth  []ssh.AuthMethod
 addr  string
 clientConfig *ssh.ClientConfig
 client *ssh.Client
 session *ssh.Session
 err  error
 )
 // get auth method
 auth = make([]ssh.AuthMethod, 0)
 auth = append(auth, ssh.Password(password))

 clientConfig = ssh.ClientConfig{
 User: user,
 Auth: auth,
 Timeout: 30 * time.Second,
 }

 // connet to ssh
 addr = fmt.Sprintf("%s:%d", host, port)

 if client, err = ssh.Dial("tcp", addr, clientConfig); err != nil {
 return nil, err
 }

 // create session
 if session, err = client.NewSession(); err != nil {
 return nil, err
 }

 return session, nil
}

連接的方法很簡單,只要提供登錄主機的 用戶*, *密碼*, *主機名或者IP*, *SSH端口

執行,命令獲取結果

連接成功后,執行命令很簡單

import ( 
 "fmt"
 "log"
 "os"
 "time"

 "golang.org/x/crypto/ssh"
)

func main() { 
 session, err := connect("root", "xxxxx", "127.0.0.1", 22)
 if err != nil {
 log.Fatal(err)
 }
 defer session.Close()

 session.Run("ls /; ls /abc")
}

上面代碼運行之后,雖然命令正常執行了,但是沒有正常輸出的結果,也沒有異常輸出的結果。 要想顯示結果,需要將 session 的 Stdout 和 Stderr 重定向 修改 func main 為如下:

func main() { 
 session, err := connect("root", "xxxxx", "127.0.0.1", 22)
 if err != nil {
 log.Fatal(err)
 }
 defer session.Close()

 session.Stdout = os.Stdout
 session.Stderr = os.Stderr
 session.Run("ls /; ls /abc")
}

這樣就能在屏幕上顯示正常,異常的信息了。

交互式命令

上面的方式無法遠程執行交互式命令,比如 top , 遠程編輯一個文件,比如 vi /etc/nginx/nginx.conf 如果要支持交互式的命令,需要當前的terminal來接管遠程的 PTY。

func main() { 
 session, err := connect("root", "olordjesus", "dockers.iotalabs.io", 2210)
 if err != nil {
 log.Fatal(err)
 }
 defer session.Close()

 fd := int(os.Stdin.Fd())
 oldState, err := terminal.MakeRaw(fd)
 if err != nil {
 panic(err)
 }
 defer terminal.Restore(fd, oldState)

 // excute command
 session.Stdout = os.Stdout
 session.Stderr = os.Stderr
 session.Stdin = os.Stdin

 termWidth, termHeight, err := terminal.GetSize(fd)
 if err != nil {
 panic(err)
 }

 // Set up terminal modes
 modes := ssh.TerminalModes{
 ssh.ECHO:  1, // enable echoing
 ssh.TTY_OP_ISPEED: 14400, // input speed = 14.4kbaud
 ssh.TTY_OP_OSPEED: 14400, // output speed = 14.4kbaud
 }

 // Request pseudo terminal
 if err := session.RequestPty("xterm-256color", termHeight, termWidth, modes); err != nil {
 log.Fatal(err)
 }

 session.Run("top")
}

總結

好了,這樣就可以執行交互式命令了,比如上面的 top 也可以通過 vi /etc/nginx/nignx.conf 之類的命令來遠程編輯文件。以上就是如何使用Go語言實現遠程執行命令的全部內容了,希望本文對大家學習python有所幫助。

您可能感興趣的文章:
  • mongodb 3.4下遠程連接認證失敗的解決方法
  • MongoDB遠程訪問配置步驟詳解
  • 使用Go語言實現遠程傳輸文件
  • go語言實現一個簡單的http客戶端抓取遠程url的方法
  • mongodb 實現遠程連接
  • 使用goland調試遠程代碼的操作步驟

標簽:上海 宜昌 紹興 盤錦 眉山 雅安 邢臺 七臺河

巨人網絡通訊聲明:本文標題《如何使用Go語言實現遠程執行命令》,本文關鍵詞  如何,使用,語言,實現,遠程,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《如何使用Go語言實現遠程執行命令》相關的同類信息!
  • 本頁收集關于如何使用Go語言實現遠程執行命令的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲最新在线观看| 亚洲午夜精品网| 91啪亚洲精品| 99视频精品在线| 成人毛片视频在线观看| 国产一区二区三区美女| eeuss鲁片一区二区三区在线看| 国产一区二区三区最好精华液| 日韩中文字幕1| 五月天视频一区| 日产国产欧美视频一区精品| 日韩精品欧美精品| 中文字幕在线一区二区三区| 国产精品日日摸夜夜摸av| 国产女同互慰高潮91漫画| 国产精品久久久久久久裸模| 国产女主播视频一区二区| 国产精品免费av| 亚洲欧美国产毛片在线| 亚洲色图欧洲色图婷婷| 一区二区三区美女视频| 精品国产第一区二区三区观看体验| 蜜臀91精品一区二区三区| 国产一区二区三区蝌蚪| 精品国产凹凸成av人网站| 午夜精品福利在线| 欧美日韩在线播放| 亚洲va韩国va欧美va精品| 亚洲1区2区3区视频| 国产精品夜夜爽| 欧美日韩国产小视频在线观看| 欧美一区二区福利在线| 久久亚洲春色中文字幕久久久| 国产日韩欧美精品在线| 国产精品毛片a∨一区二区三区| 亚洲男人的天堂av| 奇米综合一区二区三区精品视频| 日本亚洲天堂网| 色婷婷综合久久| 国产精品美女久久久久高潮| 国产乱对白刺激视频不卡| 欧美喷水一区二区| 日韩精品1区2区3区| 在线免费视频一区二区| 亚洲精品视频在线| 99久免费精品视频在线观看| 国产精品久久久久三级| 91福利精品第一导航| 欧美日本乱大交xxxxx| 亚洲欧美色图小说| 成人av集中营| 中文字幕在线不卡一区| 成人免费视频免费观看| 91精品国产91综合久久蜜臀| 亚洲日韩欧美一区二区在线| 激情丁香综合五月| 国产亚洲精品资源在线26u| 久久精品国产在热久久| 欧美大白屁股肥臀xxxxxx| 亚洲18影院在线观看| 欧美日韩国产免费一区二区| 老司机精品视频线观看86| 国产激情一区二区三区桃花岛亚洲 | 美女视频黄久久| 精品精品国产高清一毛片一天堂| 精品制服美女丁香| 久久久三级国产网站| 成人精品gif动图一区| av爱爱亚洲一区| 美日韩一级片在线观看| 亚洲一区中文在线| 久久先锋影音av| 日韩一级大片在线观看| 欧美一二三四在线| 亚洲精品一线二线三线| 久久婷婷色综合| 中文字幕第一区二区| 伊人色综合久久天天人手人婷| 亚洲免费三区一区二区| 丝袜亚洲另类欧美| 麻豆视频一区二区| av色综合久久天堂av综合| 亚洲精品国产无套在线观| 中文字幕一区日韩精品欧美| 欧美xxxx在线观看| 日韩一区二区三区四区| 欧美日韩在线播放一区| 欧美日韩一区三区四区| 欧美日韩在线直播| 色综合色综合色综合色综合色综合| 美脚の诱脚舐め脚责91 | 亚洲一级片在线观看| 国产美女主播视频一区| 国产精品色一区二区三区| 日本高清不卡在线观看| 国产精品人成在线观看免费| 精品视频一区三区九区| 国产在线一区观看| 亚洲欧美日韩在线| 精品日韩一区二区三区| 欧美日韩日本视频| 欧美在线视频日韩| 91在线免费视频观看| 久久国产尿小便嘘嘘| 国产午夜亚洲精品羞羞网站| 91视频在线看| 成人av免费在线| 亚洲一区二区在线播放相泽| 国产亚洲欧美日韩在线一区| 久久久久久久久久久久久久久99| 美国一区二区三区在线播放| 亚洲精品videosex极品| 伊人一区二区三区| 亚洲最大成人综合| 亚洲精选视频在线| 亚洲午夜激情av| 91麻豆精品国产91久久久久久久久 | 国产精品三级电影| 一本久久a久久精品亚洲| 国产风韵犹存在线视精品| 国产精品一区专区| 国产乱码精品一区二区三| 国产成人免费视频精品含羞草妖精| 久草精品在线观看| 国产精品一二三区| 9久草视频在线视频精品| 国产激情视频一区二区在线观看| 成人av动漫在线| 日韩欧美二区三区| 亚洲男人的天堂网| 石原莉奈一区二区三区在线观看| 日韩精品一卡二卡三卡四卡无卡| 日韩和欧美的一区| 成人精品视频一区二区三区 | 国产精品拍天天在线| 亚洲在线一区二区三区| 国产精品资源在线| 91超碰这里只有精品国产| 欧美精品一区二区三区很污很色的| 1024成人网| 亚洲精品久久久蜜桃| 国产99久久久久久免费看农村| 色狠狠桃花综合| 久久精品一区二区| 国产一区二区福利| 精品国偷自产国产一区| 久久久欧美精品sm网站| 亚洲1区2区3区4区| 欧美性生交片4| 欧美不卡激情三级在线观看| 亚洲va韩国va欧美va精品| 欧美日韩视频第一区| 久久婷婷国产综合国色天香| 韩国女主播成人在线观看| 欧美videos大乳护士334| 激情五月播播久久久精品| 欧美电影免费观看高清完整版在 | 成人性生交大片免费看中文网站| 欧美一级一区二区| 亚洲无人区一区| 欧美日韩国产成人在线免费| 亚洲成人黄色小说| 欧美一级日韩一级| 国产成人久久精品77777最新版本| 精品区一区二区| 成人av网站大全| 日本成人在线一区| 综合av第一页| 欧美mv日韩mv国产| 在线一区二区视频| 久久aⅴ国产欧美74aaa| 日本一区二区三区四区在线视频| 在线视频欧美精品| 狠狠色狠狠色综合系列| 亚洲精品免费在线观看| 久久亚洲精品国产精品紫薇| av成人免费在线观看| 亚洲一区二区高清| 日本一区二区不卡视频| 欧美一二三四在线| 欧洲视频一区二区| 一区二区高清免费观看影视大全| 国产午夜亚洲精品不卡| 欧美日韩高清一区二区| 91在线观看地址| 国产福利不卡视频| 国产盗摄视频一区二区三区| 亚洲在线视频免费观看| 日韩一区二区三区三四区视频在线观看| 国产mv日韩mv欧美| 国产传媒久久文化传媒| 老司机午夜精品| 国产一区二区免费在线| 日韩精品成人一区二区在线| 亚洲三级小视频| 一级做a爱片久久| 亚洲小说欧美激情另类| 亚洲男人的天堂av| 日韩 欧美一区二区三区| 久久99久久99精品免视看婷婷|