美文网首页
Jenkins2 学习系列23 -- Jenkins 定期备份

Jenkins2 学习系列23 -- Jenkins 定期备份

作者: 飞凡的陀螺 | 来源:发表于2019-08-13 11:12 被阅读0次

    Jenkins的所有数据文件都存在文件中,Jenkins备份就是备份JENKINS_HOME目录。默认路径是/var/lib/jenkins,或者到Jenkins的配置文件中查看cat /etc/default/jenkins | grep "home"

    JENKINS_HOME目录 结构如下:

    image.png

    其中 workspace, builds 和 fingerprints目录是不需要备份的

    定期备份是个好习惯,备份功能通过安装插件实现。

    thin-backup 备份插件

    比较流行的插件有 periodicbackuthin-backup ,发现无论是Github中更新时间还是star数量 thin-backup都更好些,所以选择了 thin-backup

    thin-backup 安装好后,管理页面会多出一个菜单项,进入后是 thin-backup 设置页面,
    非常简答,立即备份,恢复和配置

    image.png

    配置页面中可以设置备份路径,备份周期,最大备份数量等等

    image.png

    备份周期的填写要符合Jenkins trigger cron语法,我填写的是 H 23 * * 6 即每周6的23点任意分钟执行

    关于 Jenkins trigger cron

    类似UNIX cron语法,一段 cron 包含5个字段。使用空格或tab分隔

    格式为:
    分钟:0~59
    小时:0~23
    一月某一天:1~31
    月份:1~12
    星期几:0~7
    还可以使用以下字符,一次性指定多个值
    *:匹配所有值
    M-N:匹配M到N之间的值
    M-N/X:指定M到N范围内,以X值为步长
    A,B,C:逗号分隔枚举多个值

    有时候存在大量同一时刻执行的定时任务,比如N个半夜零点(0 0 * * *)执行的任务,这样会产生负载不均衡,Jenkins提供了H字符来解决这一问题,H表示hash,(0 0 * * *)表示零点0分至0点59分之间任何一个时间点

    Jenkins trigger cron 提供了更便捷的写法 @yearly, @monthly,@weekly, @daily,@hourly

    缩写 等价写法 描述
    @daily 或 @midnight 0 0 * * * 每天午夜0点执行
    @hourly 0 * * * * 每个整点0分执行
    @monthly 0 0 1 * * 每月1号的午夜执行
    @weekly 0 0 * * 0 每周日午夜执行
    @yearly 或 @annually 0 0 1 1 * 每年1月1日的午夜执行

    进阶

    无意看到一篇文章,把 JENKINS_HOME 放到Git版本控制中管理,这样省去了频繁备份的烦恼。

    参考

    https://en.wikipedia.org/wiki/Cron

    相关文章

      网友评论

          本文标题:Jenkins2 学习系列23 -- Jenkins 定期备份

          本文链接:https://www.haomeiwen.com/subject/wdekjctx.html