jenkins批量复制Job项目的shell脚本实现

背景

现在需要将“测试” 目录中的所有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文本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/79837.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VisualSVN过期后的解决方法

作为一款不错的源代码管理软件&#xff0c;svn还是有很多公司使用的。在vs中使用svn&#xff0c;大家一般用的都是VisualSVN插件。在30天试用期过后&#xff0c;它就不能被免费使用了。下面给大家讲如何免费延长过期时间&#xff08;自定义天数&#xff0c;可以设定一个很大的值…

硬件工程师笔记——电子器件汇总大全

目录 1、电阻 工作原理 欧姆定律 电阻的物理本质 一、限制电流 二、分压作用 三、消耗电能&#xff08;将电能转化为热能&#xff09; 2、压敏电阻 伏安特性 1. 过压保护 2. 电压调节 3. 浪涌吸收 4. 消噪与消火花 5. 高频应用 3、电容 工作原理 &#xff08;…

[图论]Kruskal

Kruskal 本质&#xff1a;贪心&#xff0c;对边进行操作。存储结构&#xff1a;边集数组。适用对象&#xff1a;可为负权图&#xff0c;可求最大生成树。核心思想&#xff1a;最短的边一定在最小生成树(MST)上&#xff0c;对最短的边进行贪心。算法流程&#xff1a;对全体边集…

vulnhub five86系列靶机合集

five86 ~ VulnHubhttps://www.vulnhub.com/series/five86,272/ five86-1渗透过程 信息收集 # 主机发现 nmap 192.168.56.0/24 -Pn ​ # 靶机全面扫描 nmap 192.168.56.131 -A -T4 目录扫描 dirsearch -u http://192.168.56.131/ /robots.txt提示/ona。 /ona二层目录扫描。 …

如何高效利用呼叫中心系统和AI语音机器人

要更好地使用呼叫中心系统和语音机器人&#xff0c;需要结合两者的优势&#xff0c;实现自动化、智能化、高效率的客户服务与业务运营。以下是优化策略和具体实践方法&#xff1a; 一、呼叫中心系统优化 1. 智能路由与IVR优化 智能ACD&#xff08;自动呼叫分配&#xff09; …

Nacos安装及数据持久化

1.Nacos安装及数据持久化 1.1下载nacos 下载地址&#xff1a;https://nacos.io/download/nacos-server/ 不用安装&#xff0c;直接解压缩即可。 1.2配置文件增加jdk环境和修改单机启动standalone 找到bin目录下的startup.cmd文件&#xff0c;添加以下语句(jdk路径根据自己…

【牛客练习赛137 C】题解

比赛链接 C. 变化的数组(Easy Version) 题目大意 一个长度为 n n n 的非负数组 a a a&#xff0c;要求执行 k k k 次操作&#xff0c;每次操作如下&#xff1a; 有 1 2 \frac{1}{2} 21​ 的概率令 a i ← a i ( a i ⊗ m ) x , ∀ i ∈ [ 1 , n ] a_i \leftarrow a_…

Redis适用场景

Redis适用场景 一、加速缓存二、会话管理三、排行榜和计数器四、消息队列五、实时分析六、分布式锁七、地理位置数据八、限流九、数据共享十、签到 一、加速缓存 Redis最常见的应用之一是作为缓存层&#xff0c;用于存储频繁访问的数据&#xff0c;从而减轻数据库的负载。 通过…

【LangChain4j快速入门】5分钟用Java接入AI大模型,Spring Boot整合实战!| 附源码

【LangChain4j快速入门】5分钟用Java接入AI大模型&#xff0c;Spring Boot整合实战&#xff01; 前言&#xff1a;当Java遇上大模型 在AI浪潮席卷全球的今天&#xff0c;Java开发者如何快速拥抱大语言模型&#xff1f;LangChain4j作为专为Java打造的AI开发框架&#xff0c;以…

2025第十七届“华中杯”大学生数学建模挑战赛题目B 题 校园共享单车的调度与维护问题完整成品正文33页(不含附录)文章思路 模型 代码 结果分享

校园共享单车运营优化与调度模型研究 摘 要 本研究聚焦校园共享单车点位布局、供需平衡、运营效率及故障车辆回收四大核心问题&#xff0c;通过构建一系列数学模型&#xff0c;系统分析与优化共享单车的运维体系。 针对问题一&#xff0c;我们建立了基于多时段观测的库存估算…

Unity游戏多语言工具包

由于一开始的代码没有考虑多语言场景&#xff0c;导致代码中提示框和UI显示直接用了中文&#xff0c;最近开始提取代码的中文&#xff0c;提取起来太麻烦&#xff0c;所以拓展了之前的多语言包&#xff0c;降低了操作复杂度。最后把工具代码提取出来到单独项目里面&#xff0c;…

.NET MCP 文档

MCP 概述 MCP&#xff08;Model Context Protocol&#xff09;是由 Anthropic 推出的一种开放协议&#xff0c;类似 AI 的 USB-C 扩展坞&#xff0c;用于在大模型和数据源之间建立安全的通信&#xff08;授权&#xff09;&#xff0c;让 AI 应用能够安全地访问和操作本地或远程…

【Linux】vim配置----超详细

目录 一、插件管理器准备 二、目录准备 三、安装插件 一、插件管理器准备 Vim-plug 是一个Vim插件管理器&#xff0c;利用异步并行可以快速地安装、更新和卸载插件。它的安装和配置都非常简单&#xff0c;而且在操作过程中会给出很多易读的反馈信息&#xff0c;是一个自由、…

PHP实现图片自动添加水印效果

<?php // 设置原始图片路径和水印图片路径 $original_image original.jpg; $watermark_image watermark.png;// 创建图片资源 $original imagecreatefromjpeg($original_image); $watermark imagecreatefrompng($watermark_image);// 获取图片尺寸 $original_width im…

检查新接手LINUX服务器应用的部署情况和正在运行的服务

当接手一台新的 Linux 服务器时&#xff0c;第一要务就是摸清系统上已经安装部署了哪些应用和服务。 本文将以 CentOS7为例&#xff0c;详细介绍如何系统地排查已安装的应用和服务&#xff0c;包括它们的安装方式和安装位置。 1.查看系统基本信息 首先获取系统整体信息&…

使用注解方式整合ssm时,启动tomcat扫描不到resource下面的xxxmapper.xml问题,解决方法

解决org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.xxx.mapper.方法 在Spring与Mybatis整合时&#xff0c;可能会遇到这样的报错 原因&#xff1a; 其原因为mapper路径的映射错误&#xff0c;表示在尝试执行某个 Mapper 接口的方法时…

C++11特性补充

目录 lambda表达式 定义 捕捉的方式 可变模板参数 递归函数方式展开参数包 数组展开参数包 移动构造和移动赋值 包装器 绑定bind 智能指针 RAII auto_ptr unique_ptr shared_ptr 循环引用 weak_ptr 补充 总结 特殊类的设计 不能被拷贝的类 只能在堆上创建…

My SQL 索引

核心目标&#xff1a; 理解 mysql 索引的工作原理、类型、优缺点&#xff0c;并掌握创建、管理和优化索引的方法&#xff0c;以显著提升数据库查询性能。 什么是索引&#xff1f; 索引是一种特殊的数据库结构&#xff0c;它包含表中一列或多列的值以及指向这些值所在物理行的指…

极狐GitLab 注册限制如何设置?

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;关于中文参考文档和资料有&#xff1a; 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 注册限制 (BASIC SELF) 您可以对注册实施以下限制&#xff1a; 禁用新注册。新注册需要管理员批准。需要用户电子邮件确认。…

10.(vue3.x+vite)div实现tooltip功能(css实现)

1:效果截图 2:代码实现 <template><div><div class="tooltip" style="margin-top: 20%; margin-left: 20%; background-color: blueviolet; color: white;