通过 Plink 发送 Ctrl+break 序列

问题描述 投票:0回答:1

我正在尝试通过 Plink 自动执行远程服务器 shell 命令。我所做的事情之一就是

grep
命令。

现在假设如果结果很多数据那么我只想中断命令。

通常在 PuTTY 中,您只需执行 Ctrl-CCtrl-Break 即可中断命令。

Plink 的替代方案是什么?

c# shell ssh putty plink
1个回答
0
投票

不要从 C# 应用程序运行 Plink 来实现 SSH。使用 SSH 的本机 .NET 实现,例如 SSH.NET。 – 它将使您能够完全控制连接,并且您不必使用像发送 Ctrl+C 这样的 hacks

var client = new SshClient("example.com", "username", "password");
client.Connect();

SshCommand command = client.CreateCommand("grep pattern file");
IAsyncResult result = command.BeginExecute();
using (var outputReader = new StreamReader(command.OutputStream))
using (var extendedReader = new StreamReader(command.ExtendedOutputStream))
{
    int read = 0;
    while (read < 10240)
    {
        string s;
        s = outputReader.ReadToEnd();
        read += s.Length;
        Console.Write(s);
        s = extendedReader.ReadToEnd();
        read += s.Length;
        Console.Write(s);
    }
}

command.CancelAsync();

此外,您可以在一定次数的比赛后使用

-m
开关来停止
grep

© www.soinside.com 2019 - 2024. All rights reserved.