您的位置:首页 >运维|devops|jenkins构建分支选择及执行日志展示
发布于2026-08-13 阅读(0)
扫一扫,手机访问
分支选择
git提交日志展示
远程shell执行日志展示
展示应用日志








先把【SSH Server】配置好,然后再继续配置【SSH site】。
注意 SSH Publishers 里面【Exec command】 为空

#!/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
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9