snow · 2026.5.15 12:44 · 조회 2

Jenkins 백업 및 복구

백업 대상

Jenkins의 모든 설정과 데이터는 JENKINS_HOME 디렉토리에 저장됩니다.

경로내용
$JENKINS_HOME/config.xmlJenkins 전체 설정
$JENKINS_HOME/jobs/모든 Job 설정 및 빌드 이력
$JENKINS_HOME/plugins/설치된 플러그인
$JENKINS_HOME/secrets/암호화 키 및 Credentials
$JENKINS_HOME/users/사용자 계정 정보

빌드 workspace는 백업 불필요. 소스 코드는 Git에서, 아티팩트는 별도 저장소에서 관리합니다.


ThinBackup 플러그인 (권장)

설치

플러그인 관리에서 ThinBackup 검색 후 설치

설정

Jenkins 관리 → ThinBackup → Settings

항목권장값
Backup directory/backup/jenkins
Backup schedule (full)0 2 * * 0 (매주 일요일 새벽 2시)
Backup schedule (diff)0 2 * * 1-6 (평일 매일)
Max # of backup sets10
Wait until Jenkins is idle체크

복구

Jenkins 관리 → ThinBackup → Restore → 날짜 선택 후 복구


수동 백업 스크립트

1#!/bin/bash2JENKINS_HOME=/var/jenkins_home3BACKUP_DIR=/backup/jenkins4DATE=$(date +%Y%m%d_%H%M%S)5 6# 백업 디렉토리 생성7mkdir -p $BACKUP_DIR8 9# 중요 파일만 백업 (빌드 이력 제외)10tar -czf $BACKUP_DIR/jenkins_config_$DATE.tar.gz \11  --exclude="$JENKINS_HOME/jobs/*/builds" \12  --exclude="$JENKINS_HOME/jobs/*/workspace" \13  --exclude="$JENKINS_HOME/war" \14  $JENKINS_HOME15 16# 30일 이상 된 백업 삭제17find $BACKUP_DIR -name "*.tar.gz" -mtime +30 -delete18 19echo "백업 완료: jenkins_config_$DATE.tar.gz"

cron 등록

1# 매일 새벽 3시 백업20 3 * * * /opt/scripts/jenkins-backup.sh >> /var/log/jenkins-backup.log 2>&1

Job 내보내기/가져오기

Job XML 내보내기

1curl -u admin:TOKEN http://jenkins/job/my-job/config.xml > my-job.xml

Job XML 가져오기

1# 새 Job 생성2curl -u admin:TOKEN -X POST http://jenkins/createItem?name=my-job-copy \3  -H "Content-Type: application/xml" \4  --data-binary @my-job.xml

Docker 환경 복구

1# 백업에서 Jenkins 홈 복구2tar -xzf jenkins_config_20251001_030000.tar.gz -C /3 4# Jenkins 컨테이너 재시작5docker restart jenkins

댓글

아직 댓글이 없습니다.

댓글을 작성하려면 로그인이 필요합니다.