SSH.NET мониторинг вывода команды в режиме реального времени
Есть долго работающий скриптscript.sh
на удаленной машине Linux. Мне нужно запустить его и отслеживать его активность в режиме реального времени. Скрипт во время своей работы может выводить наstdout
а такжеstderr
, Я ищу способ захвата обоих потоков.
Я использую Renci SSH.NET для загрузкиscript.sh
и запустите его, так что было бы здорово увидеть решение, ограниченное этой библиотекой. На мой взгляд, идеальным решением является новый метод:
var realTimeScreen= ...;
var commandExecutionStatus = sshClient.RunCommandAsync(
command: './script.sh',
stdoutEventHandler: stdoutString => realTimeScreen.UpdateStdout(stdString)
stderrEventHandler: stderrString => realTimeScreen.UpdateStderr(stderrString));
...
commandExecutionStatus.ContinueWith(monitoringTask =>
{
if (monitoringTask.Completed)
{
realTimeScreen.Finish();
}
});