2017-09-16 68 views
1

我正在研究R & D项目,我的想法是从Jenkins触发shell script并将控制台输出写入放置的文件(文本文件)在远程Windows服务器中。我试图寻找选择,但没有一个是有帮助的。将Jenkins控制台输出写入放置在远程服务器中的文件

有没有办法用写Jenkins控制台输出到位于远程服务器上的文本文件:

  1. 任何后生成的动作或
  2. 任何外部詹金斯插件或
  3. 任何其他不同方法

根据需要写入输出是否需要任何连接访问?请帮助我找出一个办法。

+0

你在为你的任务写一个Jenkins插件吗? –

+0

我只是使用Jenkins中的'execute shell command'选项来触发我的shell脚本并将路径指向shell脚本位置。我希望将jenkins控制台上的输出写入放置在远程服务器中的文件中。 – Dev

回答

0

我找到了一个方法。我们可以使用Jenkins REST API,它将帮助我们读取控制台输出,并且可以将它写入文件并执行必要的操作。

1

我能想到的几种方法来实现这一目标:

  • 当运行你的shell命令,重定向到文件:

    echo scripting output > myScriptOutput.txt 
    

    然后将文件复制到远程文件共享:

    copy myScriptOutput.txt \\server\share\subfolder 
    

    (可以在自由式或管道作业中完成)。

  • 像上面那样重定向输出,然后存档工件,并使用其中一个Publish Over...Plugins将其复制到远程服务器(只能在自由式作业中完成)。

  • 将您的远程服务器配置为Jenkins节点。然后,使用管道脚本,如:

    node("myBuildNodeNameOrLabel") { 
        bat """echo scripting output > myScriptOutput.txt""" 
        stash includes: 'myScriptOutput.txt', name: 'myScriptOutput' 
    } 
    node("myRemoteServerNodeNameOrLabel") { 
        unstash 'myScriptOutput' 
        // copy the file to another local folder outside the workspace 
        bat """copy myScriptOutput.txt d:\\some\\other\\path""" 
    } 
    
  • 与上述相同,但使用Groovy然后操纵它捕获脚本输出...

    myOutput = bat returnStdout: true, script: """echo scripting output""" 
    // now do whatever you want with the Groovy var myOutput... 
    
  • Email-Ext插件可以发送詹金斯的控制台输出通过电子邮件。

+0

啊。最后是一个建议。我认为副本(scp)和归档到工件看起来更好。我会尽力而为,最快会回复你。谢谢。我还需要检查它是否与Windows服务器之间存在连接。 – Dev

相关问题