C#通过SSH实现远程ssh在linux执行命令后读取较大的输出内容,并检测输出结果如果存在"发布成功"字段则运行通过并返回.,netframework版本为4.6
时间: 2024-09-24 18:30:31 浏览: 162
在C#中,通过SSH库如`SSH.NET`可以实现对Linux服务器的远程连接,然后执行命令并处理大输出。以下是基本步骤:
1. 首先,你需要安装SSH.NET库。在NuGet包管理器中搜索并安装`SSH.NET`包。
```csharp
Install-Package SSH.NET
```
2. 导入必要的命名空间并创建SSH客户端实例:
```csharp
using SSH.Net;
using SSH.Net.Sftp;
using System.IO;
using System.Text;
```
3. 创建一个函数,接受服务器配置信息、用户名、密码以及命令字符串作为参数:
```csharp
private static bool ExecuteRemoteCommand(string host, string username, string password, string command)
{
using (var client = new SshClient(host))
{
client.Connect(username, password);
// 执行命令并获取输出流
using (var session = client.CreateSession())
{
session.Command = command;
using (var output = session.GetStandardOutput(Encoding.UTF8))
{
using (StreamReader reader = new StreamReader(output))
{
string line;
StringBuilder outputBuilder = new StringBuilder();
while ((line = reader.ReadLine()) != null)
{
outputBuilder.AppendLine(line);
if (outputBuilder.ToString().Contains("发布成功")) // 检查是否包含关键字
return true; // 如果找到返回true
}
}
}
}
return false; // 如果未找到关键词,则返回false
}
}
```
4. 调用这个函数,传入你的Linux服务器信息和命令:
```csharp
bool result = ExecuteRemoteCommand("your_server_ip", "your_username", "your_password", "your_command_to_execute");
if (result)
{
Console.WriteLine("命令执行成功且包含'发布成功'");
}
else
{
Console.WriteLine("命令执行失败或未找到'发布成功'");
}
```
阅读全文