snow · 2026.5.15 12:44 · 조회 2
Jenkins 백업 및 복구
백업 대상
Jenkins의 모든 설정과 데이터는 JENKINS_HOME 디렉토리에 저장됩니다.
| 경로 | 내용 |
|---|---|
$JENKINS_HOME/config.xml | Jenkins 전체 설정 |
$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 sets | 10 |
| 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>&1Job 내보내기/가져오기
Job XML 내보내기
1curl -u admin:TOKEN http://jenkins/job/my-job/config.xml > my-job.xmlJob 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.xmlDocker 환경 복구
1# 백업에서 Jenkins 홈 복구2tar -xzf jenkins_config_20251001_030000.tar.gz -C /3 4# Jenkins 컨테이너 재시작5docker restart jenkins댓글
아직 댓글이 없습니다.
댓글을 작성하려면 로그인이 필요합니다.