一.目录结构
Jenkins的所有数据都是存放在文件中的,所以,Jenins备份其实就是备份Jenkins_HOME目录。 JENKINS_HOME目录的机构如下:
并不是所有的内容都必须要备份。以下目录是可以不备份的。 workspace builds fingerprints
如果启动Jenkins时没有指定JENKINS_HOME环境变量,那么Jenkins将在当前用户目录下创建一个.jenkins目录作为JENKINS_HOME目录。笔者强烈建议启动Jenkins时明确指定JENKINS_HOME目录。
二.插件备份
Jenkins本身并不提供备份功能,而是交给插件来完成。我们使用Periodic Backup插件(periodicbackup)来实现Jenkins的备份。
安装Periodic Backup插件后,在Manage Jenkins菜单下就会多出一个Periodic Backup Manager菜单项。
单机该菜单项,打开Periodic Backup插件子菜单。
单机Configure选项后,进入插件配置页面
- Backup schedule(cron):进行备份的cron表达式,单机Validate cron syntax按钮可进行消炎。由于Jenkins是使用本地文件存储的方式来保存配置的,在备份过程中如果有其他操作,则很容易出现数据不一致的问题。所以,应尽量选择在无人使用Jenkins的时候进行备份
- File Management Strategy:备份策略
- ConfigOnly:只备份配置文件。
- FullBackup:进行全量备份。可以通过在Excludes list中填入Ant风格路径表达式,排除不希望进行备份的文件。多个表达式之间使用分好分隔。
- Backup Location:由于篇幅限制,这个配置项并没有出现在截图中。我们通过配置备份文件的存放位置。注意,Jenkins运行用户一定要对该文件夹进行写的权限。保存配置,单机Backup Noew选项,可以马上进行一次备份。
当需要恢复时,单机Restore选项,然后选择需要恢复的版本。
为什么没有使用thinBackup插件? 网络上有很多介绍如何使用thinBackup插件进行备份的文章。thinBackup插件已经两年没更新了。