반응형
반응형

100GB정도 사용하는 Cloud Jira에서 Host Jira로 Migration 계획을 세워서 진행중인데, Cloud Jira는 북미서버고 Host Jira는 한국에 있다보니, 백업 -> 다운로드 -> 업로드 과정이 하루에 넘는 불상사가 일어났다.


결국 주말 이틀에 평일 하루까지껴서 작업이 계획되었는데, 다운로드 -> 업로드 과정을 없애고 Host서버에서 직접 다운로드 받으면, 시간이 몇 배는 줄어들 것 같아서, Atlassian에 선 문의를 했더니, Bitbucket URL을 하나 알려주며, 본인들은 그 스크립트로 자동으로 백업하고 다운로드 받으니 참고해서 다운로드 받아라! 라는 답변이 왔다.

(참고 링크 : https://bitbucket.org/atlassianlabs/automatic-cloud-backup)


소스 분석을 간단히 해보면 이렇다.


1. JIRA Rest API를 이용하여 인증을 하고, 로컬에 쿠키로 저장을 한다. (Curl 이용)

2. 로컬에 저장된 쿠키를 이용해서 백업을 뜬다. (인증정보가 담겨진 쿠키)

3. 백업을 뜨면서, 진행상황을 Rest API를 이용하여 수시로 체크하고, 완료되면 파일명을 추출하여, 로컬에 저장된 쿠키를 이용하여 다운로드 받는다. (Wget 이용)


그런데 내 환경에서는 이상하게 잘 동작을 하지 않아서, Curl이랑 Wget이랑 동시에 사용하다보니 발생하는 문제라고 판단을 하고,

인증과 다운로드 둘 다 Wget을 사용하도록, 아래와 같이 쉘을 만들어서 사용 했다.

#!/bin/bash

# 쿠키가 저장될 위치
COOKIE_FILE_LOCATION=jiracookie

# 사전에 있던 쿠키를 지운다.
rm -f $COOKIE_FILE_LOCATION

# 인증하고, 쿠키를 지정된 위치에 저장한다.
wget --save-cookies $COOKIE_FILE_LOCATION --keep-session-cookies --post-data '{"username":"Atlassian ID 입력", "password":"패스워드 입력"}' --header 'Content-Type: application/json' "https://JIRA인스턴스.atlassian.net/rest/auth/1/session" -O /dev/null

# 백업파일을 다운로드 받는다
wget --load-cookies $COOKIE_FILE_LOCATION -t 0 --retry-connrefused --show-progress "백업 URL" -O "저장할 위치"


이로써 PC에서 다운로드 받았다가, 원격에 업로드하는 미련한 짓은 안할 수 있게 되었고, 시간을 많이 절약하게 되었다. 

그나마 JIRA 인증 API를 제공하고 있어서 다행이지, 이마저 없었다면 답이 없었을 뻔했다.

반응형
,
반응형