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.pswp.cn/diannao/79837.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/79837.shtml
英文地址,請注明出處:http://en.pswp.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;