首页主机资讯Linux环境下Jenkins如何备份数据

Linux环境下Jenkins如何备份数据

时间2025-11-26 23:12:04发布访客分类主机资讯浏览964
导读:Linux环境下Jenkins备份与恢复实操指南 一 核心要点与备份范围 备份的核心是 JENKINS_HOME 目录,几乎所有配置、作业、插件、构建元数据都在此目录中;在 CentOS/RHEL 上常见路径为 /var/lib/jenk...

Linux环境下Jenkins备份与恢复实操指南

一 核心要点与备份范围

  • 备份的核心是 JENKINS_HOME 目录,几乎所有配置、作业、插件、构建元数据都在此目录中;在 CentOS/RHEL 上常见路径为 /var/lib/jenkins,在 Debian/Ubuntu 上同样常见该路径。为降低体积,可只备份关键子目录:config.xml、jobs、users、plugins。此外,建议同时备份环境配置文件(如 /etc/sysconfig/jenkins/etc/default/jenkins)与日志(/var/log/jenkins)。若使用外部数据库(少见),需单独备份数据库。

二 手动备份步骤

  • 确认主目录
    • 登录 Web 管理界面:系统管理 → 系统配置,查看 JENKINS_HOME;或在服务器上查看:cat /etc/sysconfig/jenkins(RHEL/CentOS)或 cat /etc/default/jenkins(Debian/Ubuntu)。
  • 停止服务(强烈建议一致性)
    • 执行:sudo systemctl stop jenkins(备份期间避免写入)。
  • 打包主目录
    • 执行:sudo tar -czvf jenkins_backup_$(date +%F).tar.gz -C /var/lib/jenkins .(使用 -C 避免绝对路径打入包内)。
  • 备份关键配置与日志
    • 执行示例:
      • sudo tar -czvf jenkins_config_$(date +%F).tar.gz /etc/sysconfig/jenkins /etc/default/jenkins
      • sudo tar -czvf jenkins_logs_$(date +%F).tar.gz /var/log/jenkins
  • 启动服务
    • 执行:sudo systemctl start jenkins
  • 验证
    • 检查归档内容:tar -tzvf jenkins_backup_*.tar.gz;确认大小与文件数合理。

三 自动化备份脚本与定时任务

  • 场景A 保留构建产物(更稳妥)
    • 使用 rsync 同步到临时目录,再压缩归档,并通过计数或时间清理旧备份。示例脚本(按需调整路径与保留份数):
      • 备份脚本 /opt/backup/jenkins_backup.sh
        #!/usr/bin/env bash
        set -e
        JENKINS_HOME="/var/lib/jenkins"
        BACKUP_BASE="/data/jenkins_bak"
        KEEP_DAYS=7
        
        mkdir -p "$BACKUP_BASE"
        TS=$(date +%Y%m%d-%H%M%S)
        TMP_DIR="$BACKUP_BASE/jenkins-bak-$TS"
        ARCHIVE="$BACKUP_BASE/jenkins-bak-$TS.tar.gz"
        
        # 使用 rsync 增量同步并排除大体积目录
        rsync -a --delete \
          --exclude='builds' \
          --exclude='modules' \
          --exclude='nextBuildNumber' \
          "$JENKINS_HOME/" "$TMP_DIR/"
        
        # 归档
        tar czf "$ARCHIVE" -C "$TMP_DIR" .
        rm -rf "$TMP_DIR"
        
        # 清理旧备份(按文件数量)
        (cd "$BACKUP_BASE" &
            &
             ls -1t | tail -n +$((KEEP_DAYS+1)) | xargs rm -f)
        
        echo "[$TS] Backup finished: $ARCHIVE"
        
      • 定时任务(每天 02:00 执行):0 2 * * * /opt/backup/jenkins_backup.sh > > /data/backup.log 2> & 1
  • 场景B 极致精简(仅配置与作业)
    • 只打包关键子目录,适合频繁备份与迁移:
      #!/usr/bin/env bash
      set -e
      JENKINS_HOME="/var/lib/jenkins"
      BACKUP_DIR="/data/jenkins_bak"
      TS=$(date +%F)
      mkdir -p "$BACKUP_DIR"
      tar czf "$BACKUP_DIR/jenkins_cfg_jobs_$TS.tar.gz" \
        -C "$JENKINS_HOME" config.xml jobs users plugins
      
    • 定时任务可按需设置,例如每日一次或每 6 小时一次。

四 使用插件进行备份 ThinBackup

  • 安装与配置
    • 进入 系统管理 → 插件管理,搜索并安装 ThinBackup Plugin;在 系统管理 → ThinBackup 中配置备份目录、计划(全量/差异)、保留策略与触发方式。
  • 执行与恢复
    • 在插件页面点击 Backup Now 执行备份;恢复时在同一页面选择 Restore,指定备份点后执行,完成后重启 Jenkins 并验证。

五 恢复与验证

  • 准备环境
    • 在新机器或修复环境安装与备份时相同版本的 Jenkins;如采用手动方式,建议先停止服务:sudo systemctl stop jenkins
  • 恢复主目录
    • 将备份归档解压到 JENKINS_HOME(建议先备份当前目录):
      • sudo tar -xzvf jenkins_backup_YYYY-MM-DD.tar.gz -C /var/lib/jenkins
  • 恢复配置与日志(可选)
    • /etc/sysconfig/jenkins/etc/default/jenkins 覆盖回原位置;日志可按需恢复。
  • 启动与验证
    • 启动:sudo systemctl start jenkins;登录 Web 界面检查:系统配置、已安装插件、作业列表与最近构建是否正常。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux环境下Jenkins如何备份数据
本文地址: https://pptw.com/jishu/757222.html
如何在Linux上使用Jenkins进行代码质量检查 Jenkins在Linux中如何监控构建过程

游客 回复需填写必要信息