Jenkins 进阶篇 - 数据备份
随着我们的长期使用,Jenkins 系统中的内容会越来越多,特别是一些配置相关的东西,不能有任何丢失。这个时候我们就需要定期备份我们的 Jenkins 系统,避免一些误操作不小心删除了某些重要文件,Jenkins 的备份工具就是一剂后悔药。
要对 Jenkins 系统进行备份,本质上是对 Jenkins 的文件和目录进行备份,如果没有做特殊设置的话也就是 Jenkins 的安装目录 /var/jenkins_home,知道这个原理后就简单了,我们可以写个 Shell 脚本,在脚本中对 Jenkins 目录进行打包存档,然后添加一个系统定时任务,定期执行 Shell 脚本来存档 Jenkins 目录,需要进行恢复的时候就用存档的内容全部覆盖到 Jenkins 目录。还有一种方式就是利用 Jenkins 的备份插件,安装好 Jenkins 的备份插件后进行一些简单设置,备份插件就会定期对 Jenkins 系统进行备份,需要恢复的时候还是在插件的设置界面进行恢复操作。
第一种方式,采用 Shell 脚本备份 Jenkins 目录,利用 tar 命令归档打包文件,如果想要排除某些文件和目录可以追加 exclude 指令。
#!/usr/bin/env bash
# 指定Jenkins的安装目录路径
jenkins_home='jenkins_home_path'
current_date=$(date '+%Y%m%d')
cd $jenkins_home || exit
# 按日期备份
tar -cvzf ../jenkins_home_"$current_date".tar *
第二种方式,采用 Jenkins 插件备份 Jenkins 系统。在 Jenkins 的可选插件中搜索 backup 关键词,看到只有如下几个插件可选:

对比了这几个备份插件,目前就只有这两个还在维护,Periodic Backup 、ThinBackup,其他的最后一次发布都是好几年之前了,并且也只有 Periodic Backup 和 ThinBackup 插件的备份内容比较全面,其他的都只是备份 Jenkins 的配置文件。经过我的使用体验后发现 Periodic Backup 和 ThinBackup 插件的设置也是比较相似的。我这个就演示下 Periodic Backup 插件的使用。
安装 Periodic Backup 插件后在 Jenkins 的【系统管理】中会多出一个【Periodic Backup Manager】选项。

备份插件设置,主要是设置备份文件的存储位置和存储格式,以及备份频率和要忽略的文件及文件夹。因为备份时会占用 CPU,我们这里将【Backup schedule (cron) 】设置在每天午夜执行备份操作,这里的 schedule 设置支持标准的 cron 表达式。在【Excludes list】选项中设置要忽略的文件或者文件夹,用英文符号 ; 分割:
*.log;workspace;*.jar;*.zip;*.gz;node_modules;*.hprof;*.apk;*.ipa;*.aar
全部设置如下图:

设置好后可以点击【Backup Now!】立即备份一下,也可以等着每天午夜备份插件自动备份。备份后在【Periodic Backup Manager】插件页面可以看到已有的备份,如果需要恢复,选择一个时间节点的备份文件进行【Restore selected backup】恢复即可。

还有一种方式来备份 Jenkins 的文件目录,那就是 Git 仓库,我们可以把 Jenkins 的整改文件目录当作一个 Git 代码仓库,将文件提交到 Git 代码仓库,然后再推送到远程的 Git 服务器,这也是一种不错的备份方式,有兴趣的可以试试。
Jenkins 进阶篇 - 数据备份的更多相关文章
- Jenkins 进阶篇 - 任务关联
有时候我们的一个任务里面会进行很多的步骤,例如构建一个后端的 Java 服务,可能会有代码静态扫描,静态扫描通过后会打包成 jar 或者 war 文件,打包成功后可能还会对制品进行存档备份,然后可能会 ...
- Jenkins 进阶篇 - 节点配置
当我们使用 Jenkins 构建的项目达到一定规模后,一个 Jenkins 服务可能承受不了负载,会导致很多的构建任务堆积,严重的话还会拖垮这台服务器,导致上面的服务无法使用.例如我们公司目前在 Je ...
- Jenkins 进阶篇 - 权限配置
Jenkins的授权策略 Jenkins 默认的授权策略是[登录用户可以做任何事],也就是人人都是管理员,可以修改所有的设置以及构建所有的任务,不用做任何设置,有账号登录到 Jenkins 系统即可, ...
- Jenkins 进阶篇 - 权限案例实践
为了演示方便,我这里创建了如下的一些任务,各个任务由包含在对应的目录中树形结构大概如下: jenkins-authority 目录类型任务 ├── dev-project-group 目录类型任务 │ ...
- Jenkins 进阶篇 - 参数化构建
我们在构建任务时经常会遇到这样的情景,一个任务配置好了以后,在后面的构建过程中,又会修改一些配置.例如,我们构建项目的代码可能是拉取指定的分支或者是Tag进行构建,又或者是在构建是需要指定特定的运行平 ...
- Jenkins 进阶篇 - 单元测试覆盖率
我们做项目开发,肯定免不了要写单元测试,不管是 Java 项目.Python 项目.PHP 项目,甚至是 nodejs 项目,都应该要写单元测试,本小节就来介绍单元测试的覆盖率报告输出和展示,在后面的 ...
- MySQL(十五)之数据备份中mysqldump详解
前言 其实前面一篇数据备份已经是非常的详细了,这里我想单独的讲解一下mysqldump,相信很多程序员都是用过这个命令的! 一.MySQL数据库的备份与还原 1.1.MySQL数据库备份 1)语法 m ...
- Jenkins进阶系列之——17Jenkins升级、迁移和备份
升级Jenkins Jenkins的开发迭代非常快,每周发布一个开发版本,长期支持版每半年更新一次(ps:大版本更新).如此频繁的更新,怎么升级呢? war:下载新版的war文件,替换旧版本war文件 ...
- RMAN备份演练进阶篇
前篇介绍了通过rman进行各种备份,进阶篇则主要是rman的一些功能扩展和增加功能,利用前篇你已经完全可以完成数据库的备份,而通过本篇你可以更好更方便的完成数据库的备份. 一.建立增量备份 如果数据库 ...
随机推荐
- wordpress如何隐藏后台位置?
2017-02-08 20:43:20 言曌 阅读数 3585更多 分类专栏: WordPress 转载 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本 ...
- Python学习笔记-StatsModels 统计回归(3)模型数据的准备
1.读取数据文件 回归分析问题所用的数据都是保存在数据文件中的,首先就要从数据文件读取数据. 数据文件的格式很多,最常用的是 .csv,.xls 和 .txt 文件,以及 sql 数据库文件的读取 . ...
- 2021/5/11 docker的应用
很快一天过去了,今天虽然没有加班,但是依旧感觉疲惫,弄了一天的docker镜像的问题.作为一名前端开发工程师从以前从未听说过docker到现在懂得了如何运用,也是不容易啊.之前也说过,我们项目结构是前 ...
- Python中的迭代器、生成器、装饰器
1. 迭代器 1 """ 2 iterator 3 迭代器协议: 对象必须提供一个next()方法,执行该方法要么返回迭代中的下一项,要么引起一个StopIterati ...
- 从0开始fastjson漏洞分析
关于fastjson漏洞利用参考:https://www.cnblogs.com/piaomiaohongchen/p/10799466.html fastjson这个漏洞出来了很久,一直没时间分析, ...
- XAML 属性元素,标记扩展和注释
这节来讲一下XAML中的属性元素,标记扩展,和注释. 属性元素 一般的,我们想要对一个标签的属性赋值,可以直接在标签内部键入属性名给其赋值,如我们给button的Content属性赋值: <Bu ...
- 02 CTF WEB 知识梳理
1. 工具集 基础工具 Burpsuit, Python, FireFox(Hackbar, FoxyProxy, User-Agent Swither .etc) Burpsuit 代理工具,攻击w ...
- 【近取 key】技术规格说明书
项目 内容 这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 技术规格说明书 我在这个课程的目标是 进一步提升工程化开发能力,积累团队协作经验,熟悉全栈开发流程 ...
- 进程Queue和线程Queue区别
进程Queue from multiprocessing import Queue q=Queue() 线程Queue import queue q=queue.Queue()
- 1Spring注入小结
Spring注入小结 (在Application.xml中) Spring学习笔记 周芋杉2021/5/14 1.基本注入类型注入 注入前的准备 <bean id="#配置文件的唯一标 ...