我正在尝试通过Plink自动执行远程服务器外壳命令。我要做的一件事是grep
命令。
现在假设如果结果很多,那么我只想破坏命令。
通常在PuTTY中,您只需执行 Ctrl-C 或 Ctrl-Break ,它将破坏命令。
Plink的替代方案是什么?
答案 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
。