亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Jenkins任務(wù)批量修改的技巧分享

 更新時(shí)間:2019年03月05日 09:16:37   作者:靈雀云  
這篇文章主要給大家介紹了關(guān)于Jenkins任務(wù)批量修改的一些技巧,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

通過(guò)腳本命令行批量修改 Jenkins 任務(wù)

最近,筆者所在團(tuán)隊(duì)的 Jenkins 所在的服務(wù)器經(jīng)常報(bào)硬盤(pán)空間不足。經(jīng)查發(fā)現(xiàn)很多任務(wù)沒(méi)有設(shè)置“丟棄舊的構(gòu)建”。通知所有的團(tuán)隊(duì)檢查自己的 Jenkins 任務(wù)有沒(méi)有設(shè)置丟棄舊的構(gòu)建,有些不現(xiàn)實(shí)。

一開(kāi)始想到的是使用 Jenkins的 API 來(lái)實(shí)現(xiàn)批量修改所有的 Jenkins 任務(wù)。筆者對(duì)這個(gè)解決方案不滿(mǎn)意,經(jīng) Google 發(fā)現(xiàn)有同學(xué)和我遇到了同樣的問(wèn)題。他使用的更“技巧”的方式:在 Jenkins 腳本命令行中,通過(guò)執(zhí)行 Groovy 代碼操作 Jenkins 任務(wù)。

總的來(lái)說(shuō),就兩步:

進(jìn)入菜單:系統(tǒng)管理 --> 腳本命令行

在輸入框中,粘貼如下代碼:

import jenkins.model.Jenkins
import hudson.model.Job
import jenkins.model.BuildDiscarderProperty
import hudson.tasks.LogRotator
// 遍歷所有的任務(wù)
Jenkins.instance.allItems(Job).each { job ->

if ( job.isBuildable() && job.supportsLogRotator() && job.getProperty(BuildDiscarderProperty) == null) {
 println " \"${job.fullDisplayName}\" 處理中"

 job.addProperty(new BuildDiscarderProperty(new LogRotator (2, 10, 2, 10)))
 println "$job.name 已更新"
}
}
return;

/**

LogRotator構(gòu)造參數(shù)分別為:
daysToKeep: If not -1, history is only kept up to this days.
numToKeep: If not -1, only this number of build logs are kept.
artifactDaysToKeep: If not -1 nor null, artifacts are only kept up to this days.
artifactNumToKeep: If not -1 nor null, only this number of builds have their artifacts kept.
**/

腳本

腳本命令行介紹

腳本命令行(Jenkins Script Console),它是 Jenkins 的一個(gè)特性,允許你在 Jenkins master 和 Jenkins agent 的運(yùn)行時(shí)環(huán)境執(zhí)行任意的 Groovy 腳本。這意味著,我們可以在腳本命令行中做任何的事情,包括關(guān)閉 Jenkins,執(zhí)行操作系統(tǒng)命令 rm -rf /(所以不能使用 root 用戶(hù)運(yùn)行 Jenkins agent)等危險(xiǎn)操作。

除了上文中的,使用界面來(lái)執(zhí)行 Groovy 腳本,還可以通過(guò) Jenkins HTTP API:/script執(zhí)行。具體操作,請(qǐng)參考 官方文檔。

問(wèn)題:代碼執(zhí)行完成后,對(duì)任務(wù)的修改有沒(méi)有被持久化?

當(dāng)我們代碼job.addProperty(new BuildDiscarderProperty(new LogRotator (2, 10, 2, 10)))執(zhí)行后,這個(gè)修改到底有沒(méi)有持久化到文件系統(tǒng)中呢(Jenkins 的所有配置默認(rèn)都持久化在文件系統(tǒng)中)?我們看下 hudson.model.Job 的源碼,在addProperty方法背后是有進(jìn)行持久化的:

public void addProperty(JobProperty<? super JobT> jobProp) throws IOException {
((JobProperty)jobProp).setOwner(this);
properties.add(jobProp);
save();
}

小結(jié)

本文章只介紹了批量修改“丟棄舊的構(gòu)建”的配置,如果還希望修改其它配置,可以參考 hudson.model.Job 源碼。
不得不提醒讀者朋友,Jenkins 腳本命令行是一把雙刃劍,大家操作前,請(qǐng)考慮清楚影響范圍。如果有必要,請(qǐng)?zhí)崆白龊脗浞荨?/p>

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • 原生Java操作兔子隊(duì)列RabbitMQ

    原生Java操作兔子隊(duì)列RabbitMQ

    這篇文章主要介紹了原生Java操作兔子隊(duì)列RabbitMQ,MQ全稱(chēng)為Message?Queue,即消息隊(duì)列,“消息隊(duì)列”是在消息的傳輸過(guò)程中保存消息的容器,需要的朋友可以參考下
    2023-05-05
  • java 在file的尾部添加數(shù)據(jù)的兩種方法總結(jié)

    java 在file的尾部添加數(shù)據(jù)的兩種方法總結(jié)

    這篇文章主要介紹了java 在file的尾部添加數(shù)據(jù)的兩種方法總結(jié)的相關(guān)資料,這里提供了兩種在file尾部添加數(shù)據(jù)的方法,希望能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • spring boot 防止重復(fù)提交實(shí)現(xiàn)方法詳解

    spring boot 防止重復(fù)提交實(shí)現(xiàn)方法詳解

    這篇文章主要介紹了spring boot 防止重復(fù)提交實(shí)現(xiàn)方法,結(jié)合實(shí)例形式詳細(xì)分析了spring boot 防止重復(fù)提交具體配置、實(shí)現(xiàn)方法及操作注意事項(xiàng),需要的朋友可以參考下
    2019-11-11
  • Java獲取Process子進(jìn)程進(jìn)程ID方法詳解

    Java獲取Process子進(jìn)程進(jìn)程ID方法詳解

    這篇文章主要介紹了Java獲取Process子進(jìn)程進(jìn)程ID方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2022-12-12
  • @validated注解異常返回JSON值方式

    @validated注解異常返回JSON值方式

    這篇文章主要介紹了@validated注解異常返回JSON值方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 一文掌握J(rèn)VM?Safe?Point

    一文掌握J(rèn)VM?Safe?Point

    關(guān)于?Safe?Point?是?JVM?中很關(guān)鍵的一個(gè)概念,但我估計(jì)有不少同學(xué)不是很懂,于是今天跟大家來(lái)深入聊聊?Safe?Point,通過(guò)本文學(xué)習(xí)你會(huì)了解什么是?Safe?Point?為啥需要?Safe?Point?Safe?Point?與?Stop?the?World?的關(guān)系?感興趣的朋友一起看看吧
    2022-10-10
  • JAVA中通過(guò)Redis實(shí)現(xiàn)延時(shí)任務(wù)demo實(shí)例

    JAVA中通過(guò)Redis實(shí)現(xiàn)延時(shí)任務(wù)demo實(shí)例

    Redis在2.0版本時(shí)引入了發(fā)布訂閱(pub/sub)功能,在發(fā)布訂閱中有一個(gè)channel(頻道),與消息隊(duì)列中的topic(主題)類(lèi)似,可以通過(guò)redis的發(fā)布訂閱者模式實(shí)現(xiàn)延時(shí)任務(wù)功能,實(shí)例中會(huì)議室預(yù)約系統(tǒng),用戶(hù)預(yù)約管理員審核后生效,如未審批,需要自動(dòng)變超期未處理,使用延時(shí)任務(wù)
    2024-08-08
  • java中的構(gòu)造函數(shù)什么時(shí)候被調(diào)用執(zhí)行

    java中的構(gòu)造函數(shù)什么時(shí)候被調(diào)用執(zhí)行

    這篇文章主要介紹了java中的構(gòu)造函數(shù)什么時(shí)候被調(diào)用執(zhí)行問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Java中的Valid和Validated的比較內(nèi)容

    Java中的Valid和Validated的比較內(nèi)容

    在本篇文章里小編給大家整理的是關(guān)于Java中的Valid和Validated的比較內(nèi)容,對(duì)此有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-02-02
  • 淺談SpringBoot資源初始化加載的幾種方式

    淺談SpringBoot資源初始化加載的幾種方式

    在平時(shí)的業(yè)務(wù)模塊開(kāi)發(fā)過(guò)程中,難免會(huì)需要做一些全局的任務(wù)、緩存、線程等等的初始化工作,那么如何解決這個(gè)問(wèn)題呢?本文就來(lái)介紹一下,感興趣的可以了解一下
    2021-07-07

最新評(píng)論