Bitbucket 서버 DIY 백업
Bitbucket에서 작업한 예제 스크립트를 직접 다운로드 하거나 Git Clone으로 프로젝트를 복제합니다.
예제 스크립트 다운로드 링크
https://bitbucket.org/atlassianlabs/atlassian-bitbucket-diy-backupGit Clone
$ git clone https://bitbucket.org/atlassianlabs/atlassian-bitbucket-diy-backup.git
백업되는 항목
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 백업이 작동하려면 두 개의 디렉터리를 만들어야합니다.
${BITBUCKET_BACKUP_ROOT}/bitbucket-backup
DIY 백업 프로세스 중에 Bitbucket Server의 홈 디렉터리 및 데이터베이스 복사본이 빌드되는 작업 디렉터리 입니다.${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