최근 노션 오류가 잦아지고 있다고 들었다.

그러잖아도 백업을 하고 싶었는데, pdf 내보내기도 한계가 있으니.. 어쩌나 싶었었다.

마침 노션 한국 사용자들을 위한 페이지에 노션 백업하는 방법이 있어서 확인해봤다. 출처는 여기!


https://medium.com/@arturburtsev/automated-notion-backups-f6af4edc298d

 

Automated Notion backups

I’ve been using Gitlab for years to manage my notes. It is free, secure, resilient, trusted by thousands of companies. Gitlab is based on…

medium.com

관련 지식이 거의 없어서 복잡해 보이지만 차근차근 따라 해 봤다.

 

1단계 - Gitlab 회원가입

무료 회원이라도 용량을 넉넉하게 준다니까 당분간 걱정은 없을 것 같다.

 

 

2단계 - Notion token과 Space ID 추출하기

대학생들 온라인 강의 배속으로 보려고 F12로 다운받잖아요.. 하다 보니 생각남

- 우선 노션에 접속해준다

- 설정과 멤버 → 설정에 들어간다.

- ctrl + shift + J (윈도우, 리눅스, 크롬) or cmd+option+J(맥)을 누른다. 나는 그냥 F12 눌렀다.

그럼 아래 사진과 같이 Developer Tools가 열린다!

- 맨 위 Elements, Console, ~여기서 Network 탭을 클릭

XHR 클릭 → 🚫(clear console) 클릭

F12 누르면 뜨는 Developer Tools. 빨간 네모박스 부분을 눌러준다.

- 아까 들어간 노션 설정 창에서 '전체 워크스페이스 콘텐츠 내보내기'를 눌러준다.

- 아까 열었던 창에서 enqueque Task를 찾고 클릭

enqueque Task의 Headers 부분에 클릭하면 코드가 좌라락 뜬다.

여기서 token_v2 ~ 로 시작하는 부분과 spaceId 값을 복사한다.

나는 찾기 힘들어서 ctrl F로 찾았다. 그리고 번거롭게 드래그해서 복사하기보다는, 그냥 클릭 한 번 해주면

필요한 부분이 알아서 블록 잡히기 때문에 그대로 복사하고 따로 메모장에 적어준다.

spaceId도 " " 안의 값을 따로 메모장에 적어준다

출처 : 상단에 기재한 원문

아래는 그냥 예시다. 원래 spaceID는 영문이랑 숫자가 섞여있고 예시보다 기니까 참고만!

token_v2=xxx; spaceId: "0000-0000-0000-0000-000000”

 

3단계 - Gitlab에서 push token 만들기

- 아까 가입한 Gitlab으로 돌아가서, settings → access token에 들어간다. 아래와 같은 화면이 뜰 것이다.

Name 에는 notion backup 이런 식으로 적고, Scopes는write_repositorywrite_repository에 체크한다.

write_repository 체크하기

- 위의 사진 하단에 있는 Create Personal access token을 누르면 아래 사진과 같이 개인 토큰이 만들어진다.

이게 CI_PUSH_TOKEN이니, 메모장에 적어둔다.

지금까지 잘 따라왔다면 2번에서 적어둔 두 개랑 3번에서 적어둔 한 개가 메모장에 적혀있을 것이다.

CI_PUSH_TOKEN

 

4단계 - Gitlab에서 repository 만들기

- New Project를 생성한다.

- 꼭! privateprivate로 설정하고, creat project를 누른다.

※  private 설정하기

 

5단계 - Gitlab에서 CI/CD Script 설정

- 4단계에서 create project를 눌렀다면 아래와 같은 화면이 뜬다.

맨 오른쪽에 있는 Set up CI/CD를 클릭한다.

 

- editor가 열리면 아래 주소의 텍스트를 붙여 넣기 한다. 그대로 복붙하면 된다.

붙여넣기 했으면 Commit changes 클릭해준다.

https://gitlab.com/aburtsev/notion-backup-script/-/raw/master/.gitlab-ci.yml

 

 

6단계 - Gitlab에서 백업 설정하기

- 왼쪽 메뉴의 CI/CD → SchedulesSchedules에 들어간다.

 

New schedules를 누른다

- 아래와 같은 화면이 뜨면 하나하나 채워나간다.

Description : notion backup처럼, 아무거나 쓴다.

Interval Pattern : 언제 백업을 정기적으로 진행하냐인데, 뭘 고르든 상관은 없어 보이지만

원문은 custom을 선택해서 직접 시간을 골랐다. 이때 작성법에 주의해야 한다.

"분 시간 ***"의 형태로 적는 것이다. 예를 들어 매일 오전 5시 50분에 백업을 하고 싶다면

50 5 ***라고 적는다. (참고 - https://crontab.guru/#42_5_*_*_*)

* Cron Timezone : 한국에 거주한다면 Seoul로 적는다. 각자 거주지의 timezone 을 적으면 된다.

Target Branch : master인 채로 놔둔다.

variables : 여태 메모장에 따로 적어뒀던 걸 복붙 해 줄 시간!

NOTION_TOKEN_V2     2단계의 token_v2 붙여넣기
NOTION_SPACE_ID     2단계의 spaceId 붙여넣기
CI_PUSH_TOKEN       3단계의 token 붙여넣기
EXPORT_FILENAME     /tmp/export.zip
PYTHONUNBUFFERED    1
TZ                  각자의 TimeZone 적기. 참고 주소의 "TZ database name" 
		참고 : https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

다 입력했으면 Save pipeline schedule을 누른다.

 

7단계 - 잘 되는지 확인!

아래 사진의 ▶ 를 누른다.

그럼 두 번째 사진처럼 진행 상태를 표시하는 원이 뜬다.

Last Pipeline 아래에 있는 파란색 원이 초록색으로 뜬다면 성공! (1~2분은 걸린다.)

 

드디어 끝!

이제 노션이 정기적으로 정해 둔 시간에 백업된다.

백업될 때마다 노션에서 내보내기 완료했다는 메일이 온다..ㅋㅋㅋ

그래도 이제 안심!

 

COMMENT