商城首页欢迎来到中国正版软件门户

您的位置:首页 >运维|devops|jenkins构建分支选择及执行日志展示

运维|devops|jenkins构建分支选择及执行日志展示

  发布于2026-08-13 阅读(0)

扫一扫,手机访问

运维|devops|jenkins构建分支选择及执行日志展示

基于 jenkins Version 2.541.3 实操案例

主要操作

分支选择
git提交日志展示
远程shell执行日志展示
展示应用日志

分支选择

分支的选择,核心插件 Git Parameter Plugin

插件安装

分支参数配置

拉取git源码地方

将上面参数名BRANCH,录入到Branches to build 地方(${BRANCH})

构建前后功能变化

  • 配置前

  • 配置后

git提交日志展示

执行命令日志结果展示

插件ssh安装

系统配置ssh

任务配置调整

  • 点击 【增加构建步骤】 不是 【增加构建后操作步骤】
  • 先把【SSH Server】配置好,然后再继续配置【SSH site】。

    注意 SSH Publishers 里面【Exec command】 为空
  • SSH Server

  • SSH site

配置脚本如下:
#!/bin/bash
app_name="app"
app_pattern="${app_name}-*.jar"
port=8081
temp_path=/usr/local/temp
deploy_path=/usr/local
JA VA_HOME=/usr/local/jdk-21.0.11
log_path=/data/log
log_file=${log_path}/app.log
deploy_log=${log_path}/deploy-app-$(date +%Y%m%d_%H%M%S).log

mkdir -p "${log_path}"

# 定义日志函数:同时输出到控制台和日志文件(带时间戳)
log() {
echo "$(date '+%Y-%m-%d %H:%M:%S') $*" | tee -a "${deploy_log}"
}

log "=====部署开始 ${app_name}====="

# 等待Jar包上传完成,最多10s
new_jar=""
for ((i=0;i<10;i++)); do
new_jar=$(find "${temp_path}" -maxdepth 1 -name "${app_pattern}" | head -1)
[ -f "${new_jar}" ] && break
log "等待Jar包上传 $i/10"
sleep 1
done
[ ! -f "${new_jar}" ] && log "错误:未找到Jar包" && exit 1

jar_name=$(basename "${new_jar}")
target_jar="${deploy_path}/${jar_name}"
log "待部署包:${new_jar}"

# 停止旧进程并等待进程消亡
run_pid=$(ps -ef | grep "ja va -jar" | grep "${app_name}" | grep -v grep | awk '{print $2}')
if [ -n "${run_pid}" ]; then
log "终止旧进程 ${run_pid}"
kill -15 "${run_pid}"
for ((i=0;i<8;i++)); do
! ps -p "${run_pid}" >/dev/null && break
log "等待旧进程退出..."
sleep 2
done
if ps -p "${run_pid}" >/dev/null; then
log "超时,强制杀死 ${run_pid}"
kill -9 "${run_pid}"
sleep 2
fi
fi

# 端口兜底释放
while lsof -t -i:"${port}" >/dev/null; do
log "端口${port}占用,等待释放"
sleep 2
done

# 更新jar
rm -f "${deploy_path}/${app_pattern}"
mv "${new_jar}" "${target_jar}"

# 启动服务
log "启动应用 port:${port}"
nohup ${JA VA_HOME}/bin/ja va -jar
-Dserver.port=${port}
-Xmx512m -Xms256m
"${target_jar}" >> "${log_file}" 2>&1 &
new_pid=$!
log "新进程PID: ${new_pid}"

sleep 3
if ! ps -p "${new_pid}" >/dev/null; then
log "警告:进程启动异常,请查看日志 ${log_file}"
fi

rm -rf "${temp_path:?}"/*
log "=====部署完成====="
exit 0

执行命令日志

展示应用日志

  • 可以通过新增 SSH 命令的方式来实现。

    配置如下

命令

#!/bin/bash
# 等待5秒,让服务完成启动输出日志
sleep 5
# 查看最后300行日志,自行调整行数
tail -n 300 /data/log/app.log

展示结果

本文转载于:https://segmentfault.com/a/1190000048089034 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注