您的位置:首页 > 教育 > 锐评 > 首都在线官网_小公司管理方法_收录网站排名_app拉新放单平台

首都在线官网_小公司管理方法_收录网站排名_app拉新放单平台

2025/4/21 14:03:12 来源:https://blog.csdn.net/ccboy2009/article/details/147342972  浏览:    关键词:首都在线官网_小公司管理方法_收录网站排名_app拉新放单平台
首都在线官网_小公司管理方法_收录网站排名_app拉新放单平台

背景

现在需要将“测试” 目录中的所有job全部复制到 一个新目录中 test2。可以结合jenkins提供的api+linux shell 进行实现。

测试目录的实际文件夹名称是 test
在这里插入图片描述

脚本运行效果如下:

[qdevsom@5f-dev-hhyl shekk]$ ./copy_jenkins_job.sh
创建文件夹 test2
获取源目录Jobs...
正在复制:xxxxxx
正在复制:yyyyyy
正在复制:zzzzzz
正在复制:aaaaa
正在复制:bbbbb
复制操作完成!请验证结果。

获取凭证

* 在 Jenkins 中生成 API Token:
登录 Jenkins → 用户 → 配置 → API Token → 生成新 Token。

记录你的 用户名 和 API Token

并在脚本中替换。

脚本

#!/bin/bash# Jenkins配置
JENKINS_URL="http://10.10.84.21:8088"
USERNAME="xxxx"
API_TOKEN="xxxx"
SOURCE_FOLDER="test"
TARGET_FOLDER="test2"# 检查并创建目标文件夹
function create_folder() {folder_exists=$(curl -s -o /dev/null -w "%{http_code}" -u "$USERNAME:$API_TOKEN" "$JENKINS_URL/job/$TARGET_FOLDER/")if [ "$folder_exists" != "200" ]; thenecho "创建文件夹 $TARGET_FOLDER..."curl -X POST -u "$USERNAME:$API_TOKEN" -H "Content-Type:application/xml" -d @folder_config.xml "$JENKINS_URL/createItem?name=$TARGET_FOLDER"fi
}# 生成文件夹配置XML(需CloudBees Folder插件)
cat > folder_config.xml <<EOF
<com.cloudbees.hudson.plugins.folder.Folder><description>目标文件夹</description>
</com.cloudbees.hudson.plugins.folder.Folder>
EOF# 获取CSRF Crumb(如果启用)
CRUMB=$(curl -s -u "$USERNAME:$API_TOKEN" "$JENKINS_URL/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,\":\",//crumb)")# 主逻辑
create_folderecho "获取源目录Jobs..."
JOBS=$(curl -s -u "$USERNAME:$API_TOKEN" "$JENKINS_URL/job/$SOURCE_FOLDER/api/json?tree=jobs%5Bname%5D" | jq -r '.jobs[].name')for JOB in $JOBS; doecho "正在复制:$JOB"curl -X POST -u "$USERNAME:$API_TOKEN" -H "$CRUMB" "$JENKINS_URL/job/$TARGET_FOLDER/createItem?name=$JOB&mode=copy&from=../$SOURCE_FOLDER/$JOB"doneecho "复制操作完成!请验证结果。"

上面的脚本调用的api接口是在 jenkins 2.479.2版本验证通过。
需要 安装 jq命令,用于解析 json文本。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com