今天用jenkins做CI遇到个坑,命令为:isSnapshot=`ls|grep isv-osp-service|grep -i snapshot` ls命令返回空的话,Jenkins构建就直接失败了,勒个去~~~~ 用echo命令却不会有这个问题:isSnapshot=`echo ${service}|awk -F'[-]' '{print $5}'` 大神路过的,来指导下,是Jenkins原因还是ls命令的原因....…
参考: https://www.cnblogs.com/reblue520/p/7146693.html 1. 执行 本地 shell命令或者脚本 是在一个构建中的  bulid 选项卡. 执行本地中的一个脚本 执行一个命令 2. 执行远程机器的命令或者脚本. 2.1  ssh 插件要安装好 2.2  添加一个 用于远程的证书 在jenkins首页 点击 Credentials 进入如下页面 点击System 进入页面进行 credentials的添加: 可以添加用户名密码凭证,也可添加 用户名…
shell脚本功能:连接mysql,自动创建数据库,脚本如下 mysql -h$MYSQL_IP -u$MYSQL_USER -p$MYSQL_PASSWORD --default-character-set=utf8 -e "create database IF NOT EXISTS test" 数据库IP.用户.密码采用参数传值 问题描述:root用户登录,直接执行.sh脚本,一切正常,使用java程序调用,命令返回127错误 解决思路:网上查了一下,应该是java运行环境和登录用…
用jenkins执行shell脚本,执行一条命令: #唤醒休眠手机 adb shell input keyevent 提示: [adb] $ /bin/sh -xe /Users/xxxxx/tools/apache-tomcat-8.5.30/temp/jenkins8525959692743554347.sh + adb shell input keyevent 26 /Users/xxxxx/tools/apache-tomcat-8.5.30/temp/jenkins8525959692…
这个问题其实就是环境变量没有配准确 (1)检查你在Jenkins中设置的maven是否准确,可以通过[new job]按钮查看新建job中是否有maven选项,没有就是你配置的不准确 如果你下载的插件,同样参照前面的步骤查看是否插件起作用. (2)检查Jenkins中执行的所有脚本是否配置准确了maven的路径,因为如果之前有人配置了maven路径,且该环境变量是和之前对应的,你又安装了一个,那么只会以脚本中最早设定的环境变量为准 环境变量 cat /etc/profile 查看和添加 (3)检…
Once upon a time, birds were singing in the forest, and people were dancing under the trees, It's so peaceful 1 发生 1.1 Drone简介 Drone by Harness is a modern Continuous Integration platform that empowers busy teams to automate their build, test and rel…
[root@localhost usr]# sh test.sh command not found -bash: cd: usr: No such file or directory 这里碰到了一个问题,我用Xshell远程登录到服务器,直接可以执行我的一个脚本,这个脚本里有一些命令是在PATH路径下的. 但是在Jenkins里面直接执行脚本却报错了,说是找不到这些命令,最后我在执行脚本前先export PATH = /home/.... 把PATH设置了一下,结果就执行成功了,不知道为什么…
以centOS系统为例,记录下修改Jenkins以root用户运行的方法. 修改Jenkins配置文件 # 打开配置文件vim /etc/sysconfig/jenkins# 修改$JENKINS_USER,并去掉当前行注释$JENKINS_USER="root"1234修改Jenkins相关文件夹用户权限 chown -R root:root /var/lib/jenkinschown -R root:root /var/cache/jenkinschown -R root:root…
#获取pom文件内的项目版本 version=`awk '/<version>[^<]+<\/version>/{gsub(/<version>|<\/version>/,"",$1);print $1;exit;}' pom.xml` #将版本第三个数字替换成新的版本号 1.2.3-RE.. newVersion=`echo $version | sed 's/\(.*\..*\.\).*\(-.*\)/\1'$BUILD_NUM…
#获取pom文件内的项目版本 version=`awk '/<version>[^<]+<\/version>/{gsub(/<version>|<\/version>/,"",$1);print $1;exit;}' pom.xml` #将版本第三个数字替换成新的版本号 1.2.3-RE.. newVersion=`echo $version | sed 's/\(.*\..*\.\).*\(-.*\)/\1'$BUILD_NUM…
问题 在用mybatis-plus更新数据的时候,更新失败,错误信息如下: Cause: org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='et.verificationCode', mode=IN, javaType=class java.lang.Object, jdbcType=null, numericScale=null, resu…
# -*- coding: utf-8 -*- import os import subprocess import signal import pwd import sys class MockLogger(object): '''模拟日志类.方便单元测试.''' def __init__(self): self.info = self.error = self.critical = self.debug def debug(self, msg): print "LOGGER:"+m…
用Python写运维脚本时,经常需要执行linux shell的命令,Python中的commands模块专门用于调用Linux shell命令,并返回状态和结果,下面是commands模块的3个主要函数: 1. commands.getoutput('shell command') 执行shell命令,返回结果(string类型) >>> commands.getoutput('pwd') '/home/oracle' 2. commands.getstatus('file') 该函数…
利用commands模块执行shell命令 用Python写运维脚本时,经常需要执行linux shell的命令,Python中的commands模块专门用于调用Linux shell命令,并返回状态和结果,下面是commands模块的3个主要函数: commands.getoutput('shell command') 执行shell命令,返回结果(string类型) >>> commands.getoutput('pwd') '/home/oracle' commands.getst…
我的jenkins版本为Jenkins ver. 2.19.1 1.源码管理选项只有None的解决办法: 在插件管理中心,搜索对应的源码管理插件这里以git为例,搜索git plugin点击右下角的安装方式(在线安装需要连接VPN你懂的),如下图 重启后即可看到git按钮: 2.jenkins持续集成时,点击构建失败无法找到git.exe解决办法如下图: 控制台输出提示构建失败git.exe rev-parse --is-inside-work-tree # timeout=10:原因是没有找到…
shell脚本中sqlite3命令查询数据库失败返回空,并将错误信息打印到标准错误输出 如: #/bin/sh local ret='sqlite3 test.db "select test from test;"' 或: local ret=$(sqlite3 test.db "select test from test;") 如果test.db被锁定,ret将为空,标准错误输出有信息“Error:database is locked”.…
1.展示这段shell命令 +详解 #===================================================================================== #=================================定义初始化变量====================================== #================================================================…
背景 有需求,在允许命令或者脚本跳出交互行,需要进行内容输入,但需要人手动输入,不是很方便,此时可以通过expect来实现自动互动交互. expect是一个自动交互功能的工具,可以满足代替我们实际工作中需要从终端手动输入某些内容来使得程序或命令继续运行的目的.如安装软件是时的一些提示,ssh远程主机执行命令时需要多次输入密码的情况. 安装expect 安装依赖:yum install tcl -y 安装expect:Centos系统yum install expect -y或Ubuntu系统ap…
http://blog.csdn.net/fireofjava/article/details/40624353 Jenkins服务器为Win7版本,需要远程调用CentOS服务器上Shell脚本,然后将构建的版本拷贝到服务器上. 原想在CentOS服务器上部署Jenkins Slave Node,然后直接运行脚本即可:但是部署Slave Node出现了各种错误,因此中断. 了解到可以通过安装Jenkins插件:SSH Plugin 安装后,打开[系统设置]-[全局设置],添加SSH Remot…
1.用python语言作为第三方,调用shell 在python2.x中,可以通过包commands来进行调用shell命令.如下: cmd就是你要调用的shell命令,把环境配置好,输入正确的命令格式,就可以作为一个第三方程序,来进行命令的调用了. 但是在python3.x中取消了commands包,所以这种方式肯定是不能用了,解决方法很多,这边推荐一种万能的方式. 同理,你只要管好,环境和命令正确就可以了.这个命令在最新版的python已经逐渐被淘汰了.它最大的缺点是异步,有时候你的逻辑很正…
版权声明:本文为博主原创文章,未经博主允许不得转载.部分为转载其他人的,如要使用,也请提前通知一声 https://blog.csdn.net/a136332462/article/details/73469066 如果不知道怎么安装jenkins ,可以参考我的其他文章,linux与windows都有,http://blog.csdn.net/a136332462/article/category/6930401 那么我现在默认你已经安装成功了,咱们就开始吧 1.打开jenkins,点击左上角…
//获取标准输出//第一种 result = sh returnStdout: true ,script: "<shell command>" result = result.trim() //第二种 result = sh(script: "<shell command>", returnStdout: true).trim() //第三种 sh "<shell command> > commandResult&…
Jenkins 在 Windows agent 上执行shell 命令,听起来很有意思,以下方法可以在 Jenkins 中执行一些简单的 shell 脚本,如果是复杂脚本就交给 Linux agent 去做吧. 1. 安装工具(二选一) - Git bash - Cygwin 由于我用Git, 所以我安装的是Git for Windows. https://git-scm.com/download/win 2. 加入环境变量PATH 把 Git bash 命令的路径加入环境变量, 例如:“C:\…
有时候我们需要调用系统命令执行一些东西,可能是为了方便,也可能是没有办法必须要调用.涉及执行系统命令的东西,则就不能做跨平台了,这和java语言的初衷是相背的. 废话不多说,java如何执行shell命令?自然是调用java语言类库提供的接口API了. 1. java执行shell的api 执行shell命令,可以说系统级的调用,编程语言自然必定会提供相应api操作了.在java中,有两个api供调用:Runtime.exec(), Process API. 简单使用如下: 1.1. Runti…
首先,需要明确shell命令执行结果$?为0或者非0仅能代表此执行语句是否顺利执行了,例如: 执行语句:adb connect 192.168.XX.XX 执行结果:unable to connect to 192.168.XX.XX:5555: Connection timed out 此时echo $? 为0 所以需要手动在关键语句处对执行结果做逻辑判断 var=$(adb connect 192.168.XX.XX) if [[ $var =~ "connected" ]]; t…
1.获取shell函数调用的返回值: #!/bin/sh info() { cat jlb.sh } res=`info` echo "state: "$? echo "res: "${res} 说明:res=`info`这一行为调用函数info,里面的符号`不是单引號,而是Esc按键以下的那个.另外$?返回的为上一条命令的运行状态,不是返回值. 2.获取shell命令的返回值,原理同上,比如: #!/bin/sh info=`cat jlb.sh` echo &q…
以下过程是CentOS 1.打开此脚本(使用VIM或其他编辑器): vim /etc/sysconfig/jenkins 2.找到$JENKINS_USER并更改为“root”: $JENKINS_USER="root" 3.然后更改Jenkins主页,webroot和日志的所有权: chown -R root:root /var/lib/jenkins chown -R root:root /var/cache/jenkins chown -R root:root /var/log/…
1.jenkins主机上的docker配置 先在Jenkins主机的docke上配置上Harbor私有仓库地址 cat /etc/docker/daemon.json { "insecure-registries": ["https://192.168.75.12"] } 然后手动输入如下命令登陆进行测试: docker login http://192.168.75.12 # 输入账号密码 # 第一次登陆成功后,会把账号信息存储到文件中/root/.docker/…
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader; public class Main{ public static void main(String[] args) { //得到Java进程的相关Runtime运行对象 Runtime runtime = Runtime.getRuntime(); try { //利用exec()方法执行shell 命令 ls -a…
Jenkins中的项目在下载源代码时,如果Working Directory中存在未加入版本控制的文件或者目录已经存在于SVN库中,会导致更新失败,整个构建终止,解决方法是将SVN的检出策略由"Use 'svn upate' as much as possible"改为"Emulate clean checkout by first deleting unversioned/ignored files, then 'svn update'".…