gpt4 book ai didi

c# - 仅读取命令输出的前几行,而无需等待命令在C#中使用SSH.NET完全完成

转载 作者:行者123 更新时间:2023-12-02 14:26:13 26 4
gpt4 key购买 nike

我一直在使用SSH.NET满足所有后端需求,但是最近我一直陷于这一问题。
我要执行的命令旨在连续运行,只能手动终止(例如,按Ctrl + C),并且会定期吐出一些输出。我的目标是只获取第一个输出(或者对我来说无关紧要)。
通过SSH.NET,我还没有找到完成此任务的好方法。我最近尝试使用System.Threading.Tasks来使命令超时,但是命令执行并不关心超时,并且无论如何仍然可以运行。
这是我希望可以使用的代码:

string Output;
using (var client = new SshClient(SSHHost, 22, SSHUSER, SSHWORD))
{
client.Connect();
SshCommand CmdInstance = client.CreateCommand(Command);
var NonTerm = Task.Run(() => CmdInstance.Execute());
if (NonTerm.Wait(TimeSpan.FromSeconds(timeout)))
Console.Write(NonTerm.Result);
Output = NonTerm.Result;
client.Disconnect();
}
return Output;

最佳答案

尽管您可以肯定地使用SSH.NET来实现此功能,但我认为,更高效且更容易实现的方法是在服务器端进行操作。
参见How to Terminate Script after a certain number of output

关于c# - 仅读取命令输出的前几行,而无需等待命令在C#中使用SSH.NET完全完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64504192/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com