Jenkins 自动化任务(6)

本文详细介绍了如何在Jenkins中设置每天凌晨1点自动备份数据库的定时任务,包括使用cron语法、创建Freestyle项目、配置BuildTriggers和BuildSteps,以及如何从外部通过Bash脚本和StrictCrumb机制触发Jenkins任务。
摘要由CSDN通过智能技术生成

定时任务

比如,每天凌晨1点自动备份数据库。

选择Jenkins作业,进入Configure > Build Triggers > Build periodically 填写cron语法。cron是类Unix的操作系统下的基于时间的任务管理系统。

# 格式
# ┌──分(0 - 59)
# │ ┌──时(0 - 23)
# │ │ ┌──日(1 - 31)
# │ │ │ ┌─月(1 - 12)
# │ │ │ │ ┌─星期(0 - 6,表示从周日到周六)
# │ │ │ │ │
# *  *  *  * 

0 1 * * * # 每日 01:00
1 * * * * # 每一分钟都执行

新建Item-设置定时

1.名称:ceshi-job

2.选择Freestyle project

3.保存

4.进入configuration > 构建触发器 > Build periodically 填写cron语法。

这里我填写 * * * * * 让他每分钟执行一次

5.进入configuration > Build Steps > 下拉选择Execute Shell

添加任务为echo "hello world"

保存,等待1分钟,即可

从外部触发Jenkins任务

安装 Strict Crumb Issue 插件

进入Manage Jenkins > Manage Plugins > Available Tab

  • 在filter框内输入Crumb,找到Strict Crumb Issue,点击install
  • Restart Jenkins when installation is complete and no jobs are running
  • 安装完成后进入Installed Tab查看

启动 Strict Crumb Issue 插件

进入 Manage Jenkins > Configure Global Security > CSRF Protection.

  • 选择 Strict Crumb Issuer.
  • Click on Advanced.
  • Uncheck the Check the session ID box.
  • Save it.

从Bash脚本触发Jenkins任务

右键点击Build Now,获取link: http://10.0.0.215:8080/job/hello_world/build?delay=0sec

这个URL可以用来触发Jenkins任务,但是我们需要一些额外的token在 Jenkins 中称为crumb,crumb包含了标识发送请求的用户的信息。

# 获取crumb
curl -u "jenkins:1234" 'http://10.0.0.215:8080/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)'
# Jenkins-Crumb:dcaad0c0555a9369b2874d4a6d8870b9f55d34510e9b2d537ef4cbd905ff7825

# 保存crumb
crumb=$(curl -u "jenkins:1234" -s 'http://10.0.0.215:8080/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)')

curl -u "jenkins:1234" -H "$crumb" -X POST http://10.0.0.215:8080/job/hello_world/build?delay=0sec

然后看构建,此时外部触发Jenkins就成功了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值