windows環境下的Jenkins必備工具——向linux上傳文件執行shell的小工具

webmote33 2021-08-15 23:39:12 阅读数:213

本文一共[544]字,预计阅读时长:1分钟~
windows jenkins 工具 linux 文件

這是我參與8月更文挑戰的第15天,活動詳情查看:8月更文挑戰

  • 歡迎點贊 : 收藏 留言 如有錯誤敬請指正,賜人玫瑰,手留餘香!
  • 本文作者:由webmote 原創,首發於 【CSDN】
  • 作者格言: 生活在於折騰,當你不折騰生活時,生活就開始折騰你,讓我們一起加油!

1.jenkins中windows和linux通訊的困難

在windows下想和Linux主機進行通信,是比較困難的,就算安裝了相應的ssh、scp工具,也因為密碼需要輸入的緣故而被阻擋住,為了减輕這個麻煩,我决定開發一個小工具,使得在windows和linux間做到無縫集成。

2、擴展命令行參數

我們使用 CommandLineParser包來擴充對命令行參數的解析。 其使用相對簡單。

//定義一個參數類
public class Options
{
/// <summary>
/// [email protected]:999
/// </summary>
[Value(0)]
public string Host { get; set; }
[Option('p', "password", Required = true, HelpText = "remote host password")]
public string Password { get; set; }
[Option('s', "source", Required = true, HelpText = "local windows dir path,include filename")]
public string Source { get; set; }
[Option('d', "dest", Required = true, HelpText = "remote host destination dir path")]
public string Dest { get; set; }
[Option('c', "cmd", Required = false, HelpText = "remote host shell script")]
public string Cmd { get; set; }
}
}
複制代碼

使用 Parser.Default.ParseArguments<Options>(args) .WithParsed<Options>(o =>{})解析即可。

3、ssh.net 包

通過封裝諸多協議和密文算法,ssh.net 給我們提供了良好的shell通信機制,其包內封裝了sftp可以用來上傳下載文件。

其用法如下:

using (var client = new SftpClient(connectionInfo))
{
Console.WriteLine($"connecting {host} ...");
client.Connect();
if (client.IsConnected)
{
}
client.Disconnect();
}
複制代碼

4、下載和用法

下載地址

4.1 sshClient

這款工具主要運行在Windows上,通過ssh和sftp 向遠程linux主機發送文件和運行shell命令。

 主要用途應該是自動化運維,我是在Jenkins中運行它,以便把windows slave節點的文件拷貝到Linux中,然後再執行一些指定的脚本,比如解壓等。
其主要依賴是.net core 3.1運行環境,其他的應該均不需要。
複制代碼

4.2、用法

sshClient 1.0.0 Copyright (C) 2021 sshClient

ERROR(S): Required option 'p, password' is missing. Required option 's, source' is missing. Required option 'd, dest' is missing. 參數意義:

  • p, --password Required. remote host password

  • s, --source Required. local windows dir path,include filename

  • d, --dest Required. remote host destination dir path

  • c, --cmd optional , remote host shell script

  • -help Display this help screen.

  • -version Display version information.

value pos. 0 remote host, eg: [email protected]:2200

4.3、例子

采用以下命令行來運行sshClient。

./sshClient [email protected] -p 150.com -s "D:\work2021\sshClient\sshClient\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Configuration.dll" -d /usr/dotnet -c "cd /usr/dotnet;mv Microsoft.Extensions.Configuration.dll sshclient-test.dll"

05. 小結

如果有興趣想看看代碼:go github.com/codeex/sshC…

例行小結,理性看待!

結的是啥啊,結的是我想你點贊而不可得的寂寞。

都看到這了,還在乎點個贊嗎?

都點贊了,還在乎一個收藏嗎?

都收藏了,還在乎一個評論嗎?

版权声明:本文为[webmote33]所创,转载请带上原文链接,感谢。 https://gsmany.com/2021/08/20210815233838230z.html