首页 > 解决方案 > 通过 Plink 发送 Ctrl+break 序列

问题描述

我正在尝试通过 Plink 自动化远程服务器 shell 命令。我所做的其中一件事就是grep指挥。

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

通常从 PuTTY 中,您只需执行Ctrl-CCtrl-Break它会破坏命令。

Plink 的替代方案是什么?

标签: c#shellsshputtyplink

解决方案


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

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();

此外,您可以使用switch在一定数量的匹配后-m停止。grep


推荐阅读