如何在jenkins freestyle项目中编写shell脚本来检查URL是否已启动并将其发布到电子邮件中

如何在jenkins freestyle项目中编写shell脚本来检查URL是否已启动并将其发布到电子邮件中,shell,curl,jenkins,Shell,Curl,Jenkins,我试图写一个脚本,可以检查一个网址,然后张贴在电子邮件控制台输出,如“200OK”的网站是起来了 场景2:仅在站点关闭时触发电子邮件 下面的代码有什么问题 def msgbody='200 OK' if ((curl -Is https://google.com | head -1) == '$msgbody') echo ==========Success ) else ( echo ==========Fail ) fi (What is wrong in thi

我试图写一个脚本,可以检查一个网址,然后张贴在电子邮件控制台输出,如“200OK”的网站是起来了 场景2:仅在站点关闭时触发电子邮件

下面的代码有什么问题

def msgbody='200 OK'

if ((curl -Is https://google.com | head -1) == '$msgbody')
   echo ==========Success
) else (
   echo ==========Fail
  )
  fi    (What is wrong in this code)

您应该从查看URL类开始

这将允许您使用
getText()
读取特定URL下的整个页面。如果页面已关闭,这将引发异常

詹金斯应该会自动失败。在Jenkins作业定义中,可以指定何时以及如何发送邮件

编辑这不是有效的Groovy:
(curl-Ishttps://google.com |头-1)
。Groovy不能像BASH那样运行shell命令或使用
构建管道。此外,必须在if后面的then/else块周围使用
{}
,而不是
()
。最后,Groovy中没有
fi

 if (condition) {
     ...then...
 } else {
     ...
 }
有关如何从Groovy脚本运行shell命令的信息,请参见


并不是说您必须检查
exitValue()
的结果以确定命令是否失败<代码>0成功。

您可以在Windows批处理中执行类似操作(您需要安装curl并在路径中进行配置):


嗨&欢迎来到Stack Overflow!这个论坛不是关于技术的问题,也不是寻找免费工作的人(搜索一些自由职业者的服务)。关于可以提出什么样的问题,请参见和。谢谢@Aaron。。这很有帮助。。我是詹金斯的新手,但这是令人敬畏的感谢尼古拉斯Santisteban@AdityaRanjan没问题!如果这对您有效,请不要忘记将其标记为正确答案:)如果您在安装curl时遇到了麻烦,那么您还可以进行优化,只发送一个HEAD请求:这样,您就可以只检查站点是否已启动,而无需下载所有数据。
@echo off
curl --silent --output nul --show-error --fail http://domain-or-ip/context
if %ERRORLEVEL% EQU 0 (
   echo ==========Success
) else (
   echo ==========Fail
   exit /b %errorlevel%
)