Я пытаюсь использовать Renci SSH.NET для подключения к удаленному серверу Linux из веб-приложения C # и выполнения сценариев оболочки. Я хочу запускать сценарии один за другим. Но не понимаю, как запустить сценарии, прочитать вывод и сохранить его в метке.
Я пробовал приведенный ниже код, но не смог передать несколько команд одну строку за другой.
SshClient sshclient = new SshClient("host", UserName, Password);
sshclient.Connect();
ShellStream stream = sshclient.CreateShellStream("commands", 80, 24, 800, 600, 1024);
public StringBuilder sendCommand(string customCMD)
{
StringBuilder answer;
var reader = new StreamReader(stream);
var writer = new StreamWriter(stream);
writer.AutoFlush = true;
WriteStream(customCMD, writer, stream);
answer = ReadStream(reader);
return answer;
}
private void WriteStream(string cmd, StreamWriter writer, ShellStream stream)
{
writer.WriteLine(cmd);
while (stream.Length == 0)
{
Thread.Sleep(500);
}
}
private StringBuilder ReadStream(StreamReader reader)
{
StringBuilder result = new StringBuilder();
string line;
while ((line = reader.ReadLine()) != null)
{
result.AppendLine(line);
}
return result;
}
Я пытаюсь запустить следующие команды
sudo su - wwabc11
whoami
cd /wwabc11/batch/bin/
pwd
Как запускать команды одну за другой и читать выводимую информацию? Спасибо.