C#实现ssh远程连接linux异步执行多条java命令,并判断输出是否含有"发布成功"字段并返回结果
时间: 2024-09-25 19:02:17 浏览: 35
在C#中,你可以使用第三方库如`SSH.NET`来实现SSH远程连接Linux服务器,然后通过异步任务执行多条Java命令。下面是一个简化的示例,展示了如何做到这一点:
首先,你需要安装SSH.NET库,可以使用NuGet包管理器添加:
```sh
Install-Package SSHNet
```
然后,在C#代码中实现异步SSH连接、执行命令以及解析结果:
```csharp
using System;
using System.Threading.Tasks;
using SSH.NET;
public async Task<bool> ExecuteJavaCommands(string serverAddress, string username, string password, params string[] commands)
{
using (var client = new SshClient(serverAddress))
{
try
{
await client.ConnectAsync(username, password);
foreach (string command in commands)
{
var result = await client.RunCommandAsync(command);
if (result.StandardOutput.Contains("发布成功"))
return true; // 如果找到“发布成功”,则返回true
Console.WriteLine($"命令'{command}'的结果: {result.StandardOutput}");
}
return false; // 如果所有命令都没有找到“发布成功”
}
catch (Exception ex)
{
Console.WriteLine($"连接到服务器或执行命令时发生错误: {ex.Message}");
return false;
}
finally
{
await client.DisconnectAsync();
}
}
}
```
在这个示例中,`serverAddress`是你想要连接的Linux服务器地址,`username`和`password`分别是登录凭证,`commands`数组包含你要执行的Java命令。
要使用这个函数,只需传入相应的参数:
```csharp
bool isSuccessful = await ExecuteJavaCommands("your-server-ip", "your-username", "your-password",
"java -jar your-jar-file.jar", "your-second-command");
if (isSuccessful)
{
Console.WriteLine("所有命令都成功发布了!");
}
else
{
Console.WriteLine("存在命令未能成功发布,查看输出结果获取详细信息。");
}
```
阅读全文