首页
学习
活动
专区
圈层
工具
发布

Jenkins Pipeline 中 sh 命令的正确打开方式:获取输出与状态码的完整指南

项目中遇到了需要判断状态码的需求从网上找了些参考文档,最近有时间,整理了下,进入正题 在使用 Jenkins Pipeline 进行自动化构建和部署时,我们经常需要执行 Shell 命令,并获取命令的输出结果或执行状态...然而,很多同学对 sh 步骤的用法不够熟悉,导致脚本出错或逻辑异常。...今天,我们就来系统梳理一下 Jenkins Pipeline 中 sh 命令的两种用法: 获取 Shell 命令的标准输出(Standard Output) 获取 Shell 命令的执行状态(Exit...Status) 一、获取 Shell 命令的标准输出(returnStdout) 当我们需要执行一个命令并获取其输出内容(比如获取文件md5 ),可以使用 returnStdout: true。...二、获取 Shell 命令的执行状态(returnStatus) 默认情况下,如果 Shell 命令执行失败(返回非0状态码),Jenkins 会直接中断 Pipeline。

24210
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    网络探测:Blackbox Exporter

    #DNS解析时间,单位 s probe_dns_lookup_time_seconds 0.039431355 #探测从开始到结束的时间,单位 s,请求这个页面响应时间 probe_duration_seconds...SSL 用于最终重定向 probe_http_ssl 1 #返回的状态码 probe_http_status_code 200 #未压缩的响应主体长度 probe_http_uncompressed_body_length...: __address__ replacement: 192.168.111.65:9115 #blackbox-exporter 所在的机器和端口 这里针对每一个探针服务(如http...1, 根据 Target 实例的地址,写入__param_target 标签中,__param_形式的标签表示,在采集任务时会在请求目标地址中添加参数,等同于 params 的设置...2, 获取__param_target的值,并覆写到instance标签中; 3, 覆写Target实例的__address__标签值为BlockBox Exporter实例的访问地址。

    5K53

    网络探测:Blackbox Exporter

    #DNS解析时间,单位 s probe_dns_lookup_time_seconds 0.039431355 #探测从开始到结束的时间,单位 s,请求这个页面响应时间 probe_duration_seconds...SSL 用于最终重定向 probe_http_ssl 1 #返回的状态码 probe_http_status_code 200 #未压缩的响应主体长度 probe_http_uncompressed_body_length...: __address__ replacement: 192.168.111.65:9115 #blackbox-exporter 所在的机器和端口 这里针对每一个探针服务(如http...1, 根据 Target 实例的地址,写入__param_target 标签中,__param_<name>形式的标签表示,在采集任务时会在请求目标地址中添加参数,等同于 params...的设置 2, 获取__param_target的值,并覆写到instance标签中; 3, 覆写Target实例的__address__标签值为BlockBox Exporter实例的访问地址。

    2.8K30

    shell 常用命令

    shell 常用命令 expect expect 命令是用来实现自动化交互通信的,比如当你在脚本中通过某些命令登录、连接、上传、下载等和远程服务器的交互时,可能需要让你输入一些账号、密码等信息 如果这个过程是人工手动在终端执行的...1:用于设置 expect 命令的超时时间,单位 s,输入 -1 时表示无限长,默认为 10s [lindex $argv n]:用于获取传入给脚本的参数,n 表示第几个参数,下标从 0 开始 set...key value:用于设置变量,通常在脚本文件开头结合上面获取参数使用,来给参数赋值个有意义的变量,如 set ip [lindex $argv 0] exp_continue:用于 expect...如果是半自动化场景,如自动输入账号密码,连接登录操作,登录之后交由人工交互,那可以使用该命令 expect 命令后面可跟随字符串或对象,如: expect "password" send "xxx.../bin/sh # 打包的渠道由外部传入 environment=$1 basedir=`pwd` # 先将旧的打包文件删除, -d 表示判断 target 是否是目录 if [ -d "target

    1.8K21

    重定向Kubernetes pod中的tcpdump输出

    重定向Kubernetes pod中的tcpdump输出 最新发现一个比较有意思的库ksniff,它是一个kubectl 插件,使用tcpdump来远程捕获Kubernetes集群中的pod流量并保存到文件或输出到...,那它是如何在Kubernetes集群的Pod中远程执行tcpdump命令的?...非特权模式 非特权模式的运行逻辑为: 找到本地的tcpdump可执行文件路径 将本地的tcpdump上传到远端pod中 远程执行pod的tcpdump命令,并将输出重定向到文件或wireshark 上传...tcpdump可执行文件 ksniff使用tar命令对tcpdump可执行文件进行打包,然后通过client-go的remotecommand库将其解压到pod中,最后执行tcpdump命令即可: fileContent...,使用o.wireshark.StdinPipe()创建出输入之后,将其作为远程调用tcpdump命令的StreamOptions.Stdout的参数即可将pod的输出重定向到wireshark中:

    1.7K30

    用 Bash 读写文件 | Linux 中国

    有几种方法可以从 Bash 中读取数据。你可以创建一种数据流并解析输出, 或者你可以将数据加载到内存中。这两种方法都是有效的获取信息的方法,但每种方法都有相当具体的用例。...在 Bash 中解析文件 另一种让数据“进入” Bash 的方法是将其解析为数据流。有很多方法可以做到这一点. 你可以使用 grep 或 cat 或任何可以获取数据并管道输出到标准输出的命令。...另外,你可以使用 Bash 内置的东西:重定向。重定向本身并不是很有用,所以在这个例子中,我也使用内置的 echo 命令来打印重定向的结果: #!...先用管道把它传送到一个合适的解析器是用 Bash 读取数据的常用方法。例如, 假设 include.sh 是一个配置文件, 它的键和值对用一个等号(=)分开....在 Bash 中,你可以使用常见的 shell 重定向将数据保存到文件中。 例如, 要创建一个包含输出的新文件, 使用一个重定向符号: #!

    4.5K20

    Shell语法入门与实例:文件重定向、引入外部脚本

    中读取内容作为标准输入。 2.1 输出重定向 2.1.1 使用>将命令的标准输出导入文件 使用>符号将命令的标准输出重定向到文件中,若文件已存在,则会被覆盖;若文件不存在,则新建该文件。...2.2 输入重定向 2.2.1 使用中读取输入作为命令的标准输入 使用中读取内容作为命令的标准输入。...3.1 使用.命令(点命令) 使用.命令可以引入外部脚本。 例子: . ./external_script.sh 以上示例会将名为external_script.sh的外部脚本引入当前脚本中。.../external_script.sh 以上例子将当前目录下的external_script.sh脚本文件引入到当前脚本中。与.命令不同,source命令可以省略路径前的./。 4..../config.sh echo "Username: $username" echo "Password: $password" 以上例子演示了如何在脚本中引入配置文件config.sh,并获取其中定义的用户名和密码配置项进行输出

    69510

    Linux 中前台进程转后台,并重定向输出

    有时候我们直接在终端中执行了命令,等待很长时间后发现还需要很久才能执行完,又不想一直开着终端等待结果,可以按照下面的方式,将前台进程转至后台,并重定向输出内容至文件,以便随时连接回来查看执行状态。...重定向日志 在 Linux 中,如果一个进程已经在运行,并且您想要将其标准输出重定向到一个文件或设备,可以使用以下步骤。...使用 gdb 命令附加到该进程。gdb 是一个用于调试程序的工具,也可以用于向运行中的进程发送信号。...在 gdb 命令提示符下,执行以下命令来重定向进程的标准输出: $ gdb -p 24863 ......lrwx------ 1 ec2-user ec2-user 64 9月 30 14:10 255 -> /dev/pts/2 (deleted) 现在,进程的标准输出将被重定向到指定的文件中。

    1.3K10

    SpringCloud+Docker+Jenkins+GitLab+Maven实现自动化构建与部署实战

    4.2.5 build.sh文件shell脚本详解 注意点1:经过测试动态变量的【等号】不能有空格和tab键置位,否则获取不了值,而且在shell脚本代码里面不支持空格格式化,支持tab置位格式化。...如:sh build.sh 192.168.1.235 springboot 0.0.1 7011 /home/jenkins/workspace/springboot_dev IMG_NAME:IMG_VERSION...如:sh build.sh 192.168.1.235 springboot 0.0.1 7011 /home/jenkins/workspace/springboot_dev IMG_SERVER=...其中push,pull一个是推,一个是拉,在某种程度下,都是对在私服上面的镜像进行操作 docker save命令是保存编译的tar.gz或tar压缩文件,语法如: docker save 镜像名 -...3、在学习过程中也遇到很多困难和疑点,如有问题或误点,望各位老司机多多指出或者提出建议。本人会采纳各种好建议和正确方式不断完善现况,人在成长过程中的需要优质的养料。

    10.2K40

    SpringCloud+Docker+Jenkins+GitLab+Maven实现自动化构建与部署实战

    如:sh build.sh 192.168.1.235 springboot 0.0.1 7011 /home/jenkins/workspace/springboot_dev IMG_NAME:IMG_VERSION...如:sh build.sh 192.168.1.235 springboot 0.0.1 7011 /home/jenkins/workspace/springboot_dev IMG_SERVER=...其中push,pull一个是推,一个是拉,在某种程度下,都是对在私服上面的镜像进行操作 docker save命令是保存编译的tar.gz或tar压缩文件,语法如: docker save 镜像名 -...,可以使用参数构建的占位符${serverPath}获取 Remote directory远程文件目录,同理也参数构建的占位符${serverPath}获取 SSH Publishers shell脚本...3、在学习过程中也遇到很多困难和疑点,如有问题或误点,望各位老司机多多指出或者提出建议。本人会采纳各种好建议和正确方式不断完善现况,人在成长过程中的需要优质的养料。

    8.6K20

    nohup java -jar 启动java项目

    今天我们聊聊linux中运行java jar包的问题~ 理解nohup命令 nohup命令的基本概念 nohup是一个常用的Unix命令,用于在忽略挂起信号(SIGHUP)的情况下运行指定的命令或进程。...java -jar MyApp.jar:实际的Java命令,用于启动JAR文件。 &:将命令放入后台执行。 输出重定向 默认情况下,nohup会将输出重定向到名为nohup.out的文件中。...Maven案例源码 在pom.xml中配置好maven-jar-plugin后,执行mvn package命令,Maven会在target目录下生成一个包含所有依赖和配置好清单的JAR文件。...配置环境变量 在启动脚本中或在系统环境变量中配置必要的环境变量,如JAVA_HOME和应用依赖的库路径。.../start-app.sh 确保start-app.sh脚本文件具有执行权限,可以使用chmod命令来设置: chmod +x start-app.sh 监控和管理运行中的Java应用 监控和管理Java

    2.6K11

    MIT6.828实验2 —— Lab Shell

    ;对系统调用的异常进行处理 xv6中提供有sh.c的实现,除了重定向和管道,还对括号、列表命令、后台命令等做了支持,且整体设计较为复杂。...} 注:相比sh.c的实现,该解析方法的不足之处是没有支持符号与下一个参数连在一起的情况,如 echo 123 >1.txt 或 echo 123 |grep 12,不过测试用例中的参数都是以空格分割...xv6中的shell实现 xv6中的shell实现在user/sh.c中,大致思路和我们的nsh相似,都是实现了对用户命令的循环读取、解析、执行,不过支持的命令类型更多且涉及更复杂。...**1.主体逻辑** sh.c将命令解析和命令执行独立开来,首先递归地构造出结构化的命令树,然后又递归地去遍历树中的命令并执行。...**2.命令解析** 命令的解析和结构化在parsecmd()中实现,支持管道,重定向,多命令顺序执行,后台执行,括号组合等符号的解析。

    2K30

    Linux系统编程:(五)Linux Shell 命令运行原理与权限机制

    1.2.1 读取命令:从终端获取用户输入 当我们在终端中输入一条命令(如ls -l)并按下回车时,Shell 会通过标准输入(stdin)读取这条命令。...1.2.2 解析命令:识别命令类型与参数 Shell 读取命令后,会进行一系列解析操作: 首先识别命令名称(如ls)与选项(如-l)、参数(如指定的目录路径); 接着判断命令类型:是内置命令...(Shell 自带的命令,如cd、pwd)还是外部命令(系统中独立的可执行文件,如ls、grep); 对于外部命令,Shell 会通过PATH环境变量指定的路径查找可执行文件(可通过echo $PATH...1.2.3 执行命令:创建子进程与系统调用 命令解析完成后,Shell 会根据命令类型执行不同的处理逻辑: 内置命令:直接在当前 Shell 进程中执行,无需创建新进程(如cd命令,若创建子进程执行...tou # 执行以tou开头的历史命令 touch newfile.txt 1.3.2 管道与重定向 Shell 的管道(|)与重定向(>、>>、命令组合使用的核心,让多个命令协同工作

    17710

    Linux权限维持|内网渗透学习(十二)

    这个子进程没有什么检验, 而是直接执行系统默认的位置的/usr/sbin/sshd, 这样子控制权又回到脚本了, 此时子进程标准输入输出已被重定向到套接字getpeername能真的获取到客户端的TCP...-o 指定输出文件 -e 指定记录的内容 -s 指定记录数据大小 ssh 是最终要执行的的命令 通过上面修改之后当进行ssh链接或者su切换用户, 在输入密码的时候, 不论正确错误都会被记录到log文件中...@target_ip /bin/bash -i ssh -o UserKnownHostsFile=/dev/null -T root@target_ip 通过上面两种命令方式登录是不会被记录的从而实现隐身登录...>" > 1.php 通过cat命令输出文件内容的话如果文件内容中俄有/r就有可能会显示不全 uname 后门(命令解析路径的劫持) 根据$PATH环境变量的解析顺序, 劫持uname程序 通过type..., 只要我们放一个具有可执行权限的uname文件到前面四个目录的任意一个, 执行uname命令都会先解析我们的uname文件从而达到劫持的效果 如果将uname内容改为如下内容并降文件放到/usr/local

    1.7K32

    0464-如何离线分析HDFS的FsImage查找集群小文件

    在前面的文章Fayson介绍了《如何在Hadoop中处理小文件》,《如何使用Impala合并小文件》和《如何在Hadoop中处理小文件-续》。...本篇文章Fayson的分析脚本主要基于HDFS提供的oiv命令来进行FsImage离线分析,将FsImage文件解析问指定的csv格式数据,如下脚本分析的具体步骤: 1.使用hdfs命令获取FsImage...2.使用hdfs oiv命令解析FsImage文件 [root@cdh02 fsimage]# hdfs oiv -i ....3.将解析的csv文件加载到Hive的HDFS_META_TEMP表中 [root@cdh02 fsimage]# sed -i -e "1d" ....config-env.sh:脚本主要用户配置集群信息(如:ImpalaDaemon访问地址、存储的表名、临时文件存放目录等) [root@cdh02 fsimage]# more config-env.sh

    4.2K51
    领券