Отправка последовательности Ctrl + break через Plink - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь автоматизировать команды оболочки удаленного сервера через Plink. И одна из вещей, которые я сделал, это grep команда.

Теперь предположим, что если получится много данных, я просто хочу нарушить команду.

Как правило, из PuTTY вы просто делаете Ctrl-C или Ctrl-Break , и это прерывает команду.

Какая альтернатива для Плинка?

1 Ответ

0 голосов
/ 10 июля 2019

Не запускайте Plink из приложения C # для реализации SSH.Используйте собственную реализацию .NET SSH, например 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();

Также вы можете использовать переключатель -m для остановки grep после определенного количества совпадений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...