通过Plink发送Ctrl + break序列

时间:2019-07-10 02:07:15

标签: c# shell ssh putty plink

我正在尝试通过Plink自动执行远程服务器外壳命令。我要做的一件事是grep命令。

现在假设如果结果很多,那么我只想破坏命令。

通常在PuTTY中,您只需执行 Ctrl-C Ctrl-Break ,它将破坏命令。

Plink的替代方案是什么?

1 个答案:

答案 0 :(得分: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