基于Jenkins的定时任务监控

本文不关注于Jenkins在自动化构建与测试上,将介绍Jenkins在定时任务上面的快速部署能力。Linux在OS层面提供了crontab -e可以安装定时任务,但是功能单一,对进程的运行情况,日志查看,没有统一的管理控制台。Jenkins很好地克服了linux cron的缺陷,提供了基于web的控制界面,特别适合于为远程服务部署调用UI接口,方便非cs出身的运维人员对系统进行管理。同时,也解决了远程服务器的服务权限控制的问题,运维人员只需要能够访问Jenkins,而无需remote到服务器调度和查看任务。

Jenkins的工程应用

简要介绍一下,Jenkins是一个代表业界良心的非常好用的持续集成CI引擎,主要有两大应用,一是可以用来构建持续的、自动化的软件测试项目,另外是用来监控一些定时执行的任务。Jenkins易于安装和配置,5-10分钟即可搞定,基本上没有学习成本,就可以实现从代码签出、软件构建、自动化测试,以及一系列诸如生成文档、打包软件、部署构建等任务。

CI系统在探测到代码库的修改时,将自动触发构建任务,如果构建失败,那么CI系统将通过邮件或RSS的方式通知相关人员,然后继续监视代码库。并且,每次build的结果都被很好的管理,方便的查看。

基于Jenkins的定时任务监控_第1张图片

在Centos 7上安装Jenkins

下面介绍如果在centos7上面安装Jenkins,其他linux版本类似。

  1. 检查并安装JDK
    java -version
    yum info java*
    yum install java-1.8.0-openjdk

  2. 安装Jenkins
    wget -O /etc/yum.repos.d/jenkins.repo http://jenkins-ci.org/redhat/jenkins.repo
    rpm –import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key (–import前是两条短横线)
    yum install jenkins

  3. 目录结构:
    /usr/lib/jenkins/:jenkins安装目录,存放WAR包。
    /etc/sysconfig/jenkins:jenkins配置文件,“端口”,“JENKINS_HOME”等都可以在这里配置。
    /var/lib/jenkins/:默认的JENKINS_HOME。
    /var/log/jenkins/jenkins.log:Jenkins日志文件。

忘记admin初始密码,可以在/var/lib/jenkins/secrets/initialAdminPassword文件中查阅。

遇上无法启动的系统命令时,需要以root权限来运行Jenkins,修改配置文件/etc/sysconfig/jenkins中的JENKINS_USER="root"
  1. 启动Jenkins
    service jenkins start
    有可能出现错误:“Starting Jenkins -bash: /usr/bin/java: No such file or directory”。表示找不到Jenkins找不到java。
    这时就需要“vi /etc/init.d/jenkins”,把java路径加上。

  2. 登陆Jenkins
    如果没有特别配置端口,使用http://:8080/登录Jenkins,并进行相关配置(插件安装、权限配置、View/Job创建等等)。

部署定时任务

首先,登陆Jenkins Console,新建任务。

基于Jenkins的定时任务监控_第2张图片

进入新建选项页面,进行定时任务的配置,可以配置源码管理、触发器、构建环境等。这里我们构建环境项,勾选Add timestamps to the Console Output。在构建项,增加构建步骤,选择Execute shell,在这里配置定时任务的命令即可,可以是编译好的C++可执行文件,或者是shell脚本。

温馨提醒,使用tee可以一边显示的标准输出显示设备,一边输出到文本log。
$ ./mongodb | tee -a mongo.log

基于Jenkins的定时任务监控_第3张图片

设置定时任务

在构建触发器里面设置定时,例如,每周1-5,早上6点半执行任务。

基于Jenkins的定时任务监控_第4张图片

定时的格式为:【minute hour date month weekday】

在以上各个字段中,还可以使用以下特殊字符:
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

例如,周二到周四每隔两小时的第3和第15分钟执行
命令:3,15 /2 * 2-4

查看日志

可以在控制台查看命令的输出log。

基于Jenkins的定时任务监控_第5张图片

你可能感兴趣的:(阿里云)