基于Jenkins的定时任务监控
来源:互联网 发布:微老板软件 编辑:程序博客网 时间:2024/05/29 18:19
本文不关注于Jenkins在自动化构建与测试上,将介绍Jenkins在定时任务上面的快速部署能力。Linux在OS层面提供了crontab -e可以安装定时任务,但是功能单一,对进程的运行情况,日志查看,没有统一的管理控制台。Jenkins很好地克服了linux cron的缺陷,提供了基于web的控制界面,特别适合于为远程服务部署调用UI接口,方便非cs出身的运维人员对系统进行管理。同时,也解决了远程服务器的服务权限控制的问题,运维人员只需要能够访问Jenkins,而无需remote到服务器调度和查看任务。
Jenkins的工程应用
简要介绍一下,Jenkins是一个代表业界良心的非常好用的持续集成CI引擎,主要有两大应用,一是可以用来构建持续的、自动化的软件测试项目,另外是用来监控一些定时执行的任务。Jenkins易于安装和配置,5-10分钟即可搞定,基本上没有学习成本,就可以实现从代码签出、软件构建、自动化测试,以及一系列诸如生成文档、打包软件、部署构建等任务。
CI系统在探测到代码库的修改时,将自动触发构建任务,如果构建失败,那么CI系统将通过邮件或RSS的方式通知相关人员,然后继续监视代码库。并且,每次build的结果都被很好的管理,方便的查看。
在Centos 7上安装Jenkins
下面介绍如果在centos7上面安装Jenkins,其他linux版本类似。
检查并安装JDK
java -version
yum info java*
yum install java-1.8.0-openjdk安装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目录结构:
/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"
启动Jenkins
service jenkins start
有可能出现错误:“Starting Jenkins -bash: /usr/bin/java: No such file or directory”。表示找不到Jenkins找不到java。
这时就需要“vi /etc/init.d/jenkins”,把java路径加上。登陆Jenkins
如果没有特别配置端口,使用http://:8080/登录Jenkins,并进行相关配置(插件安装、权限配置、View/Job创建等等)。
部署定时任务
首先,登陆Jenkins Console,新建任务。
进入新建选项页面,进行定时任务的配置,可以配置源码管理、触发器、构建环境等。这里我们构建环境项,勾选Add timestamps to the Console Output。在构建项,增加构建步骤,选择Execute shell,在这里配置定时任务的命令即可,可以是编译好的C++可执行文件,或者是shell脚本。
温馨提醒,使用tee可以一边显示的标准输出显示设备,一边输出到文本log。
$ ./mongodb | tee -a mongo.log
设置定时任务
在构建触发器里面设置定时,例如,每周1-5,早上6点半执行任务。
定时的格式为:【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的定时任务监控
- Jenkins定时构建任务
- 基于PHP的crontab定时任务管理
- 基于xml配置的spring定时任务
- 基于Timer和TimerTask的定时任务
- springmvc基于注解的定时任务
- 基于 yii2 的定时任务处理/
- 基于etcd的分布式定时任务框架
- 基于spring的quartz定时任务的配置详述
- 基于SpringMvc的定时任务设计与踩的坑
- 基于cron实现定时任务
- 基于注解的Spring定时任务简单实现
- APScheduler 基于Quartz的一个定时任务框架
- 基于spring+quartz的分布式定时任务框架
- Linux监控Tomcat服务定时任务脚本
- php_crond:一个基于pcntl的定时任务系统-支持秒粒度的任务配置
- 使用Spring定时任务并且通过AOP监控任务执行情况
- 使用Spring定时任务并且通过AOP监控任务执行情况
- Windows下tracert命令
- C# WinForm GDI
- 使用Jquery.cookie.js遇到的一些问题
- ECharts3 实现数据动态更新3+时间坐标,数据累积
- ES高级查询,高亮显示
- 基于Jenkins的定时任务监控
- 在ERP中定义用户时报错:SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间
- WPF无边框拖动、全屏、缩放
- css中的权重
- 丑数,即只有2,3,5因子的整数,找出第n 个丑数
- Intellij IDEA 2017 Maven导入依赖包失败 Pom.xml不报错,MavenProjects红色波浪线。
- 图像特征点检测与匹配评价——量化指标
- ALV通过F4事件,实现自定义搜索帮助F4
- java程序员的大数据之路(7):基于文件的数据结构