교육용 OneDrive 용량 축소에 따른 백업 방법

THXX·2023년 11월 7일
0

Microsoft's plan

어느날 크롬을 켜서 주요 뉴스를 보니 청천벽력같은 소식이 있었다. 마이크로소프트가 교육기관에 무료로 제공하던 Microsoft 365 서비스가 축소된다는 것이었다. 교육기관에 무제한으로 제공되던 OneDrive 용량은 기관 당 100TB로 축소되었다. 보통의 경우 학생/교직원 한 명에게 1TB씩을 주고 있었으니, 이제 그 많은 사람들 중 100명만이 1TB씩을 사용할 수 있는 용량이 되어버린 것이다. 따라서 많은 교육기관이 개인에게 제공하던 OneDrive 용량에 대해 축소를 선언했다. 1TB에서 10GB 또는 5GB로... 1TB는 1000GB이니 99%정도가 축소가 된 것이다.

시장경제체제에서는 줄곧 있는 일이긴 하다. 무료로 양질의 서비스를 제공하여 많은 사용자를 모은 뒤, 그들이 서비스에 익숙해졌을 때(또는 그것이 없으면 죽을 것 같은 상태가 되었을 때) 서비스를 유료화하여 더 많은 경제적 이익을 얻는다. 이것에 대해 뭐라 말할 수는 없다. 기업의 자유이며 이 서비스를 계속 이용할 지 선택하는 것은 소비자의 자유이다.

아무튼... OneDrive에 약 300GB의 데이터를 저장하고 있었던 필자는 이러한 재난에 대응하여 OneDrive 내 디렉토리 구조를 유지하면서, 빠르게 파일들을 로컬 환경으로 다운로드 받았다. 이 글을 읽는 여러분들에게도 알려드리려고 한다.


Rclone

Rclone은 세계의 클라우드 서비스들이 제공하는 많은 드라이브 서비스들을 지원한다. 이 프로그램을 이용하여 파일을 참조, 복사, 동기화할 수 있으며, 심지어 파일 시스템 형식으로 마운트하는 기능까지 지원한다.

rsync와 헷갈리기 일쑤이다. rsync는 remote sync의 줄임말로 로컬 간 또는 로컬-네트워크 파일 시스템 간 파일 복사를 쉽게 할 수 있는 프로그램이다. OneDrive나 Google Drive와 같은 대형 클라우드와 같이 사용하기엔 적합하지 않다.

Rclone 다운로드

https://rclone.org/downloads/

사용하는 PC의 CPU 아키텍처와 OS를 확인하여 자신의 환경에 맞게 다운로드 받으면 된다. 압축 파일에는 실행 가능한 프로그램이 있을 것이다.

  • Windows의 경우 rclone.exe
  • Linux의 경우 rclone
  • MacOS의 경우 rclone

rclone config

이제 Microsoft OneDrive 서비스에 대한 설정(config)을 만들어야 한다.

터미널 (명령 프롬프트)에서 rclone이 있는 경로로 이동한 뒤, rclone config 명령을 사용하자. 이러면 현존하는 설정의 목록과 interactive한 사용자 환경이 제공된다.

현재 나는 OneDrive에 대한 설정이 존재하므로 목록이 떴지만, 처음 시작하는 사람들에게는 보이지 않을 것이다. 새로운 설정을 만들 것이므로 n을 입력하고 엔터를 눌러 진행한다.

설정의 이름을 물어본다. 이는 나중에 "원격지 경로"를 지정할 때 사용되므로 길게 하거나 알아보지 못하게 만들면 좋을 것 없다.
ex) myod2:/directories/aaa

이름을 지정하면 어떠한 서비스를 위해 rclone 설정을 만들고 싶은지 목록을 제공한다. 53개나 있으니 rclone이 새삼 대단하다고 느껴진다.

Microsoft OneDrive는 31번에 있었다. 31을 입력하고 엔터를 눌러 진행한다.

client_id와 client_secret (원드라이브의 인증 체계에 사용되는 정보)들을 알고 있다면 넣으면 되지만 보통 모르므로 그냥 넘어간다. (엔터를 누른다.)
지역(리전)을 고르라고 하는데, 암만 봐도 2,3,4는 소거법으로 제외되므로 1번을 선택한다. 기본값이 global이므로 엔터를 눌러도 괜찮다.

고급 설정은 필요 없다. n을 입력하거나 엔터를 눌러 진행한다.

이제 인증을 할 차례이다. GUI 데스크톱 환경을 지원하는 OS는 여기서 y를 누르면 브라우저가 켜지며 OneDrive 로그인을 할 수 있게 해준다. 로그인하면

이러한 페이지가 뜨고, 다시 터미널로 돌아가 rclone을 확인하면

설정의 타입을 선택하라고 하는데, 1번을 선택해준다.

드라이브를 선택하라고 한다. 하나 밖에 없으므로 1번 누르고 진행한다. 그리고 또 드라이브의 root를 찾았다고 하는데 Yes 로 진행해준다. 고민의 여지가 존재하지 않는다.

마지막으로 엄청난 길이의 액세스 토큰이 우리를 반겨주지만, 무시하고 엔터를 눌러 설정을 완료한다.

이제 myod2라는 설정 하나가 더 생기게 되었다.

q를 눌러 rclone config에서 빠져나간다.

rclone sync

sync는 동기화의 의미이다. 아 그럼 이걸 실행하면 rclone이 데몬 프로그램이 되어 폴더 내 변화를 감지하여 동기화를 해주느냐? 그건 아니다. 그냥... 원격 저장소와 로컬 저장소를 일치시키는 한 번의 행위이다.

rclone sync source:path dest:path [flags]

위 명령 체계를 이용하여 현재 OneDrive에 존재하는 모든 디렉토리와 파일들을 로컬 저장소에 가져올 수 있다. 디렉토리 구조는 유지된다.

멀티쓰레드를 이용하여 다운로드를 진행하므로, 속도가 빠르다.

flags의 목록은 rclone help flags 명령을 이용하여 확인 가능하다.

나는 아래와 같이 rclone sync를 사용할 것이다.

rclone sync myod2:/ D:/odbu/ --verbose --progress \
--progress-terminal-title --log-file rclonelog20231107.txt

지정했던 rclone 설정의 이름이 원격지(source) 이름으로 사용되는 것을 확인할 수 있다.
목적지 경로는 그냥 로컬의 경로를 사용하면 된다.

  • verbose : 현재 진행 상황을 계속 터미널에 출력해주는 역할을 한다. 이 플래그를 지정하지 않으면 그냥 커서만 깜빡깜빡거리고 있다. 내부적으로는 일을 하고 있지만서도.
  • progress : 현재 진행도를 알려준다.
  • progress-terminal-title : 터미널 타이틀에 ETA(남은 시간)를 알려준다.
  • log-file : 로깅을 할 수 있다. 로깅을 강력 추천한다. 오류가 났을 경우 로그를 확인하여 그것만 다시 다운로드 받을 수 있다.

이제 다운로드가 진행되는 모습을 확인할 수 있다. 터미널 제목으로 시간h분m초s로 남은 시간을 알려주고 있다. 물론 터미널 출력에서도 확인할 수 있다.
그러나 이 ETA는 믿으면 안된다. 다운로드 중간에 더 많은 파일이 탐색되었을 경우 다운로드 받는 총 용량이 그제서야 추가되게 되고, ETA는 늘어난다.

로그

2023/11/07 18:59:10 INFO  : 그림/카메라 앨범/2020/20201015_000640.jpg: Copied (new)
2023/11/07 18:59:10 INFO  : 그림/카메라 앨범/2020/20201015_000628.jpg: Copied (new)
2023/11/07 18:59:10 ERROR : 그림/카메라 앨범/2020/20201019_202120.jpg: Failed to copy: failed to open source object: invalidRequest: Invalid request
2023/11/07 18:59:10 INFO  : 그림/카메라 앨범/2020/20201016_024519.jpg: Copied (new)
2023/11/07 18:59:10 INFO  : 그림/카메라 앨범/2020/20201019_202112.jpg: Copied (new)
2023/11/07 18:59:11 INFO  : 그림/카메라 앨범/2020/20201019_202127.jpg: Copied (new)

중간에 오류가 발생한 것을 확인할 수 있었다. 오류가 발생한 횟수는 터미널 출력에서도 확인 가능하다. Rclone에는 자동으로 retry하는 기능(기본값 3회)이 있다고 하니 참고하길 바란다. (다운로드가 완료된 직후 재시도를 시작한다.)


Windows 운영체제와 너무 잘 통합되어 있었던 OneDrive이기에 너무나 아쉽다. 여유가 되어 결제할 수 있다면 무조건 할 것 같다. 지금은 때가 아니므로 On-Premise 오픈소스 클라우드를 운용하던지 해야겠다.

profile
THXX FOR EVERYTHING

0개의 댓글