Я пытаюсь захватить вывод из длительной команды SSH
, которая может первоначально занять несколько секунд для создания любого текстового вывода после вызова и может занять до минуты для полного завершения.
Приведенный ниже фрагмент кода работает нормально, если я запускаю простую команду для выполнения, такую как ls
, которая производит немедленный вывод в выходной поток.
Однако я ничего не возвращаю и SSH
отключаетсяесли я запускаю команду, которая не производит мгновенный вывод.
using (var sshClient = new SshClient(target, 22, userName, password))
{
sshClient.Connect();
var cmd = sshClient.CreateCommand(command);
var result = cmd.BeginExecute();
using (var reader = new StreamReader(cmd.OutputStream))
{
while (!reader.EndOfStream || !result.IsCompleted)
{
string line = reader.ReadLine();
if (line != null)
{
Console.WriteLine(line);
}
}
sshClient.Disconnect();
}
}