Bitbucket 서버 DIY 백업

Bitbucket에서 작업한 예제 스크립트를 직접 다운로드 하거나 Git Clone으로 프로젝트를 복제합니다.

 

백업되는 항목

Bitbucket Server DIY Backup은 Bitbucket Server Backup Client와 동일한 데이터를 모두 백업합니다.

  • 인스턴스가 연결된 데이터베이스 (내부 또는 외부 DB)

  • 관리되는 Git 저장소

  • Bitbucket 서버 로그

  • 설치된 플러그인 및 해당 데이터

Bash 스크립트를 사용한 DIY 백업

필요한 도구

  • bash -스크립팅 용

  • jq Bitbucket Server에서 REST 응답을 구문 분석하기 위한 오픈 소스 명령 줄 JSON 프로세서

  • pg_dump(또는 sqlcmd)-PostgreSQL 데이터베이스 백업용

  • rsync -파일 시스템 백업용

  • tar -백업 아카이브 만들기

지원 OS

  • Linux 및 Unix

  • Mac OS

  • cygwin Windows (cygwin Git는 Bitbucket Server에서 지원 되지 않음)

Bash 스크립트

예제 스크립트를 다운로드한 후 하나의 파일을 생성해야 합니다.

  • bitbucket.diy-backup.vars.sh (bitbucket.diy-backup.vars.sh.example를 복사하여 시작할 수 있습니다.)

구성 예시

다음 예시는 postgresql 9.5를 Database로 사용중인 Bitbucket DIY 백업 구성 예시입니다.

$ vi bitbucket.diy-backup.vars.sh #!/bin/bash CURL_OPTIONS="-L -s -f" INSTANCE_NAME=bitbucket # Bitbucket Domain URL, Home Directory set BITBUCKET_URL=http://bitbucket.example.com:7990 BITBUCKET_HOME=/bitbucket-home/ # Bitbucket directory owner set BITBUCKET_UID=atlbitbucket BITBUCKET_GID=atlbitbucket BACKUP_HOME_TYPE=rsync BACKUP_DATABASE_TYPE=postgresql BACKUP_ARCHIVE_TYPE=tar # Bitbucket System admin set BITBUCKET_BACKUP_USER=admin BITBUCKET_BACKUP_PASS=admin BITBUCKET_BACKUP_EXCLUDE_REPOS=() # Bitbucket DB set BITBUCKET_DB=bitbucket POSTGRES_HOST=localhost POSTGRES_USERNAME=dbuser export PGPASSWORD=dbpass POSTGRES_PORT=5432 # Make use of PostgreSQL 9.3+ options if available psql_version="$(psql --version | awk '{print $3}')" psql_majorminor="$(printf "%d%03d" $(echo "${psql_version}" | tr "." "\n" | head -n 2))" if [[ ${psql_majorminor} -ge 9003 ]]; then PG_PARALLEL="-j 5" PG_SNAPSHOT_OPT="--no-synchronized-snapshots" fi # Bitbucket BACKUP directory set BITBUCKET_BACKUP_ROOT=/bitbucket-backup BITBUCKET_BACKUP_DB=${BITBUCKET_BACKUP_ROOT}/bitbucket-db/ BITBUCKET_BACKUP_HOME=${BITBUCKET_BACKUP_ROOT}/bitbucket-home/ BITBUCKET_BACKUP_ARCHIVE_ROOT=/bitbucket-backup-archives # Used by the scripts for verbose logging. If not true only errors will be shown. BITBUCKET_VERBOSE_BACKUP=TRUE HIPCHAT_URL=https://api.hipchat.com HIPCHAT_ROOM= HIPCHAT_TOKEN= KEEP_BACKUPS=0
  • DIY 백업이 작동하려면 두 개의 디렉터리를 만들어야합니다.

  1. ${BITBUCKET_BACKUP_ROOT}/bitbucket-backupDIY 백업 프로세스 중에 Bitbucket Server의 홈 디렉터리 및 데이터베이스 복사본이 빌드되는 작업 디렉터리 입니다. 

  2. ${BITBUCKET_BACKUP_ARCHIVE_ROOT}  /bitbucket-backup-archives 최종 백업 아카이브가 저장 되는 디렉토리입니다. 

  • Bash 스크립트는 다음과 같은 경우 모든 호스트에서 실행할 수 있습니다.

  • ${BITBUCKET_BACKUP_ROOT}  및 ${BITBUCKET_BACKUP_ARCHIVE_ROOT} 디렉토리 읽기 / 쓰기 액세스

  • ${BITBUCKET_HOME} 디렉토리에 대한 읽기 권한

  • 데이터베이스에 대한 읽기 액세스

  • curl Bitbucket Server 서버 에서 명령을 실행하기 위한 네트워크 액세스

Bitbucket Server 또는 Data Center의 인스턴스가 있는지 여부에 관계없이 적용됩니다. 파일 시스템 엑세스가 직접 또는 NFS를 통해 이루어지는지 또는 네트워크 액세스가 Bitbucket Server 노드 또는 로드 밸런서/역방향 프록시에 직접 연결되는지 여부는 중요하지 않습니다. 

  • bitbucket.diy-backup.vars.sh올바르게 구성 되면백업을 실행

$ ./bitbucket.diy-backup.sh