Выполнить несколько команд через SSH внутри контейнера Docker из C # - PullRequest
0 голосов
/ 20 марта 2019

Мне нужно запустить несколько команд в Docker-контейнере через SSH из C #.Я использую Renci.sshnet для подключения SSH.Вот мой код:

  {
      ssh.Connect();
      var command = ssh.CreateCommand("sudo docker exec - it freeradius bash &&"+" echo User-Name=" + username + ",Framed-IP-Address=" + framedipaddress + "| radclient -x " + nasipaddress + ":1700 disconnect a1rp0c9ptio8");
      strReturn = command.Execute().ToString();
  }

Если вручную я делаю, эти две строки команды работают нормально для меня.но из ssh не работает ... любая идея, пожалуйста ???

1 Ответ

0 голосов
/ 20 марта 2019

Вы можете установить свою полную команду в параметре bash -c:

$ docker exec -it sad_kilby bash -c "echo 123 && echo $? && ls / | grep etc"
123
0
etc

Таким образом, ваша команда будет такой:

string subcommand = "echo User-Name=" + username + ",Framed-IP-Address=" + framedipaddress + "| radclient -x " + nasipaddress + ":1700 disconnect a1rp0c9ptio8"
var command = ssh.CreateCommand("sudo docker exec -it freeradius bash -c \"" + subcommand + "\"")
...