C#实现远程ssh在linux执行命令后读取输出内容,并检测运行结果和是否存在"发布成功"字段并返回
时间: 2024-09-24 13:28:38 浏览: 71
在C#中,你可以使用SSH.NET库来实现远程连接Linux服务器并在那里执行命令并获取输出。首先需要安装SSH.NET库,可以通过NuGet包管理器添加。以下是一个简单的示例:
```csharp
using SSH.Net;
using SSH.Net.Sftp;
string host = "your_host";
int port = 22; // 默认SSH端口,如果不同请修改
string username = "your_username";
string password = "your_password";
// 创建一个新的SSHClient实例
var client = new SSHClient(host, port);
client.Connect();
try
{
// 使用用户名密码登录
client.AuthenticateWithPassword(username, password);
using (var sftp = client.CreateSftpSession())
{
// 通过sftp打开远程命令行通道
using (var shell = sftp.OpenShell())
{
string commandToExecute = "your_command_here"; // 替换为你要执行的命令
var output = shell.Execute(commandToExecute);
// 检查输出是否包含"发布成功"
bool isSuccessful = output.ToString().Contains("发布成功");
if (isSuccessful)
Console.WriteLine("发布成功");
else
Console.WriteLine("发布失败,原因: 输出中未找到'发布成功'");
}
}
}
catch (Exception ex)
{
Console.WriteLine($"SSH连接或命令执行出错: {ex.Message}");
}
finally
{
client.Disconnect(); // 关闭连接
}
阅读全文