запустить локальный скрипт с флагами на удаленный компьютер с помощью ssh - PullRequest
1 голос
/ 28 мая 2020

Мне нужно добиться аналогичной функциональности в программе go, как показано ниже.

s sh user@host "python" - <./test.py -f bar </a>

Теперь я могу получить выделенную часть, мне просто нужно передать флаги с файлом сценария.

ниже - код для выделенной части.

package main
import (
    "log"
    "os"

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

func main()  {
    user := "user"
    hostport := "10.10.10.10:22"
    script, _ := os.OpenFile("test.py", os.O_RDWR|os.O_CREATE, 0755)
    interpreter := "python3"
    client, session, err := connectToHost(user, hostport) 
    session.Stdin = script
    session.Stdout = os.Stdout
    err = session.Run(interpreter)
    if err != nil {
        log.Fatal(err)
    }
    client.Close()
    defer session.Close()
}

1 Ответ

0 голосов
/ 29 мая 2020

Поскольку вы используете перенаправление, вы можете позволить bash обрабатывать его:

bash -c "<command>"

Передайте это session.Run(...)

...