Monitoramento de saída de comando em tempo real do SSH.NET
Existe um script de longa duraçãoscript.sh
em uma máquina Linux remota. Preciso iniciá-lo e monitorar sua atividade em tempo real. O script durante sua atividade pode gerar saída parastdout
estderr
. Estou procurando uma maneira de capturar os dois fluxos.
Eu uso o Renci SSH.NET para fazer uploadscript.sh
e inicie-o, por isso seria ótimo ver uma solução vinculada a esta biblioteca. Na minha opinião, a solução perfeita é o novo método:
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();
}
});