2017-08-09 308 views
0

我想要在Jenkins中获得所有作业的触发时间,以便我可以决定何时安排它。 以下脚本显示一个对象,但无法获取计划时间和日期。Groovy脚本获取Jenkins触发时间

import org.jvnet.hudson.plugins.groovypostbuild.*; 
import jenkins.plugins.slack.*; 
jobs = hudson.model.Hudson.instance.getAllItems(FreeStyleProject) 
for (job in jobs) { 
      timeT=job.triggers(); 
      println "job: " + job.getFullName() + " " + timeT 
} 

回答

-1

可能为时已晚,但是这个工程(从https://wiki.jenkins.io/display/JENKINS/Display+timer+triggers小收养)

import hudson.model.* 
import hudson.triggers.* 

for(item in Hudson.instance.items) { 
    if(item.disabled || item instanceof com.cloudbees.hudson.plugins.folder.Folder) { 
    continue; 
    } 
    for(trigger in item.triggers.values()) { 
     if(trigger instanceof TimerTrigger) { 
      println("--- Timer trigger for " + item.name + " ---") 
      println(trigger.spec + '\n') 
     } 
    } 
} 

创建此输出:

--- Timer trigger for XXX --- 
30 4 * * 1-5 

--- Timer trigger for YYY --- 
0 6 * * 1-5 

而且更加复杂的脚本(从一些小的收养相同的来源)

import hudson.model.* 
import hudson.triggers.* 

class Timer { 
    String name; 
    String spec; 
    int minute; 
    int hour; 

    Timer(pname,pspec) { 
    name=pname; 
    spec=pspec; 
    def parts=pspec.split(" ") 
    minute=parts[0].toInteger() 
    hour=parts[1].toInteger() 
    } 
} 

def timers = [] 

for(item in Hudson.instance.items) { 
    if(item instanceof com.cloudbees.hudson.plugins.folder.Folder) { 
    continue; 
    } 
    for(trigger in item.triggers.values()) { 
    if(trigger instanceof TimerTrigger) { 
     try { 
     def timer=new Timer(item.name,trigger.spec) 
     timers.add(timer) 
     } catch (Exception ex) { 
     println(trigger.spec + " " + item.name) 
     } 
    } 
    } 
} 

timers.sort{a,b -> a.hour <=> b.hour ?: a.minute <=> b.minute} 
for (timer in timers) { 
    printf("%02d:%02d %s\n",timer.hour,timer.minute,timer.name) 
} 

创建:

00:30 MyFixedScheduledJob 
    @midnight MyAroundMidnightJob 
    H 06 * * 1-5 MyJobWithHash 
+0

虽然此链接可以回答这个问题,最好是在这里有答案的主要部件,并提供链接以供参考。如果链接页面更改,则仅链接答案可能会失效。 - [来自评论](/ review/low-quality-posts/18473946) – Pedram

+0

@Pedram谢谢你指出 - 我已经按照你的建议正确地改变了它。 –