이 페이지는 Bitbucket의 backup & restore Client 사용 방법을 정리한다.
구성 방안
1. bitbucket-backup-client-3.6.0.tar.gz 압축 해제
2. client_start.sh 파일 수정
3. client_start.sh 실행
client_start.sh 파일 수정
Bitbucket Backup Client
예)
#!/usr/bin/env bash DATE=$(date '+%Y-%m-%d-%H%M') #Bitbucket USER USERNAME="user" #Bitbucket Password PASSWORD="user" #Bitbucket URL BASEURL="http://bitbucket:7990" #Bitbucket 백업 작업 임시 디렉토리 BACKUP_TO=bitbucket_bak #Bitbucket 데이터 디렉토리 BITBUCKET_HOME=/DATA/bitbucket-home/ #Bitbucket 최종 백업 디렉토리 BACKUP_FILE_DIR=../backups #Bitbucket 백업 이름 PREFIX FILENAME_PREFIX=bitbucket-backup #Bitbucket 백업 로그 이름 LOGNAME=${FILENAME_PREFIX}-${DATE}.log #Bitbucket 백업 파일 이름 FILENAME=${FILENAME_PREFIX}-${DATE}.tar.gz #Bitbucket 백업 클라이언트 파일 BACKUP_BINARY=/DATA/bitbucket_backup/bitbucket-backup-client-3.6.0/bitbucket-backup-client.jar echo ${FILENAME} #원격 백업 서버로 전송할 경우 필요함 #원격 백업서버 계정 REMOTE_USERNAME="curvc" #원격 백업서버 IP REMOTE_IP="10.0.100.239" #원격 백업서버 포트 REMOTE_PORT="11122" #원격 백업서버 디렉토리 REMOTE_TO="/var/backups" KEEP=3 FILTER=${FILENAME_PREFIX}*.tar.gz BASE_DIR="$( cd "$( dirname "$0" )" && pwd )" BASE_DIR= realpath ${BASE_DIR} echo BASE_DIR is ${BASE_DIR} cd ${BASE_DIR} # clean up rm -rf ${BACKUP_TO} # backup Bitbucket echo java -Dbitbucket.user=${USERNAME} -Dbitbucket.password=${PASSWORD} -Dbitbucket.baseUrl=${BASEURL} -Dbitbucket.home=${BITBUCKET_HOME} -Dbackup.home=${BASE_DIR}/${BACKUP_TO} -jar ${BACKUP_BINARY} java -Dbitbucket.user=${USERNAME} -Dbitbucket.password=${PASSWORD} -Dbitbucket.baseUrl=${BASEURL} -Dbitbucket.home=${BITBUCKET_HOME} -Dbackup.home=${BASE_DIR}/${BACKUP_TO} -jar ${BACKUP_BINARY} #log backup echo "-----log backup-----" echo cp -r ${BACKUP_TO}/log/* ${BACKUP_FILE_DIR}/${LOGNAME} cp -r ${BACKUP_TO}/log/* ${BACKUP_FILE_DIR}/${LOGNAME} # zip backup data cd ${BASE_DIR} mkdir -p ${BACKUP_FILE_DIR} echo tar -zcvf ${BACKUP_FILE_DIR}/${FILENAME} ${BACKUP_TO} tar -zcvf ${BACKUP_FILE_DIR}/${FILENAME} ${BACKUP_TO} #원격 백업 서버로 전송할 경우 필요함 # transfer to remote server if [ -e ${BACKUP_FILE_DIR}/${FILENAME} ]; then echo "Backup file exist" echo "Start copy to remote" echo scp -P ${REMOTE_PORT} ${BACKUP_FILE_DIR}/${FILENAME} ${REMOTE_USERNAME}@${REMOTE_IP}:${REMOTE_TO} scp -P ${REMOTE_PORT} ${BACKUP_FILE_DIR}/${FILENAME} ${REMOTE_USERNAME}@${REMOTE_IP}:${REMOTE_TO} else echo "Backup file is NOT exist" fi #백업 파일이 90일 이후일 경우 삭제(days 변경 가능) # delete old backup file days=90 echo "start - delete files older than ${days} days" echo find /at/bitbucket_backup/backups -mtime +${days} -exec rm -f {} \; find /at/bitbucket_backup/backups -mtime +${days} -exec rm -f {} \; echo "end - delete files older than ${days} days"
백업 진행
client_start.sh 실행
- Bitbucket 접속 시 백업 진행 확인
실제 Bitbucket 서버 백업 진행 확인