rclone
1. 개요
공식 홈페이지
구글의 Go 언어로 만든 클라우드 스토리지 특화 업로드/다운로드 프로그램이다.
윈도우, 리눅스, 맥, BSD계열까지 가리지 않고 지원하며, 기본적으로는 CUI지만 Qt로 만든 GUI 프론트엔드 프로그램도 굉장히 많다.
구글 드라이브외에도 네이버 클라우드같은 경우를 빼면 사실상 현존하는 모든 클라우드 스토리지 플랫폼을 지원한다. 설정에 나와있지 않은 클라우드 스토리지라도 FTP나 WebDAV를 지원하면 연결할 수 있고, 이 때문에 클라우드 스토리지 외에도 NAS나 파일 서버등에도 연결할 수 있다. 여담이지만 러시아의 얀덱스 드라이브 마저도 지원하는 위엄을 보여준다.
'''그러나 rclone의 진정한 진가는 이게 아니다.'''
2. 위력
[image]
http://moo.nac.uci.edu/~hjm/HOWTO-rclone-to-Gdrive.html
위 사진은 2018년 3월 캘리포니아 대학교를 다니는 한 대학생이 모교의 학생들에게 무제한 구글 드라이브를 제공하기 위해 계약한 구글 Google Workspace for Education의 서비스 약관에 얼마나 대역폭을 잡아먹어가며 업로드를 해도 되는지에 대한 규정이 없다는 걸 깨닫자 마자 '''rclone을 이용해 128TB를 구글 드라이브에 400MB/s를 넘어가는 속도로 때려 박아 넣어버리는''' 짤이다.(...) 참고로 저 속도, 5600RPM이나 7200RPM으로 작동하는 하드디스크가 캐쉬가 지원하는 선에서 하드 - 하드로 데이터를 이동할때 약 최대 140MB/s 정도 나온다.(...)
아마존이 무제한 스토리지 서비스를 철회해버리고 나서 그 난민들이 Google Workspace를 파티를 짜서 공동구매하는 방법으로 만든 구글 무제한 드라이브로 옮겨가느라고 트래픽 부담을 구글에 심하게 가하는 바람에 구글이 제한을 잔뜩 걸어둬서 요즘엔 구글 드라이브의 업로드 속도가 기껏 해봐야 2 ~ 4 MB/s 밖에 안되고 그나마도 100초당 쿼리 제한이나 태평양 표준시 기준 자정[1] 에 리셋되는 24시간 내 750GB 이상 업로드 제한등 여러가지 제약이 있어서 볼 수 없긴 하지만... 여전히 rclone으로 옵션을 조금 만져주고 개인의 구글 드라이브 API를 등록하면 다른 업로드 방법보다 확실히 빠르다.
일반적으로 클라우드 스토리지가 제공하는 프로그램이나 웹에서 직접 드래그 해서는 도저히 나올수가 없는 업로드/다운로드 속도를 얻을 수 있도록 온갖 다양한 옵션들을 제공한다.
이외에도 가상 스토리지를 직접 가상 파티션으로 컴퓨터나 '''라즈베리파이''' 같은 ARM 기기에서도 마운트할 수 있는 기능을 제공한다. (단 이건 rclone 자체에서 지원하는건 아니며 호환되는 다른 마운트 프로그램을 사용한다)
이 외에도 원드라이브에 있는 걸 구글 드라이브로 복사한다던가 같은 기능도 있기 때문에 5MB/s 같은 한심한 수준의 업로드 속도를 자랑하는 클라우드 스토리지에 백업을 하려고 며칠이고 컴퓨터를 켜 놨다가 장기간의 스핀업이나 암의 과도한 부하로 하드가 죽어버리는 사태를 피하기 위해 용량은 크지 않지만 업로드가 빠른 클라우드 스토리지에 하드에 부담이 덜 가도록 빠르게 올려놓고 라즈베리파이나 ARM 계열 NAS, 혹은 DD-WRT나 OpenWRT를 포팅해둔 공유기처럼 24시간 켜둬도 전기세 걱정, 소음 걱정, 하드처럼 뭔가 물리적으로 작동하는 저장매체가 달려있지 않아서 수명 단축 걱정이 적은 컴퓨팅 보드에 SSH로 접속해서 구글드라이브처럼 업로드 제한이 심하게 걸려있으나 제공하는 저장공간이 대단히 크거나 '''무제한'''인 스토리지에 업로드하도록 명령해두고 며칠씩 신경을 아예 꺼버리면 언젠가는 업로드를 다 해놓는다(...)
실제로 레딧의 r/DataHoarder라는 수백 테라바이트는 기본이고 몇 페타바이트(!!!)나 되는 대용량 데이터를 굴리며 이런 데이터들을 어떻게 정리하고 수집하며 보관하고 백업하고 보존하는지에 대해서 도가 튼 굇수들이 득실거리는 서브레딧에서는 이런식으로 업로드를 하는 법을 추천하는걸 볼 수 있다.
3. 설치법
윈도우 / MacOS / BSD / 리눅스를 위한 패키지 꾸러미 혹은 EXE 다운로드 주소
리눅스나 MacOS, 혹은 BSD를 사용하고 있다면 터미널에서 간단히 다음 명령어를 사용하면 알아서 자동으로 rclone을 설치하는 스크립트를 다운받아서 설치한다. 다 설치가 끝나면 스스로 스크립트를 지우니 rm 명령어를 치지 않아도 된다.
curl https://rclone.org/install.sh | sudo bash
이후 윈도우 10는 탐색기로 다운로드 받은 EXE 파일이 있는 경로에서 Powershell을 관리자 권한으로 실행하고./rclone.exe
를 실행하여 연결하고 싶은 클라우드 스토리지에 대한 설정을 하면 되고,리눅스는
rclone config
를 실행하면 된다. 이후는 다음 문단의 설정법을 참고.참고로 현재 쉘에 로그인한 유저의 Home 경로인 ~/.config/ 경로에 돗파일로서 [2] 해당 설정파일이 저장되니 기억해 두면 나중에 클라우드 스토리지를 /mnt 경로에 마운트 한다던지 할때 권한이 부족해서 Sudo를 사용해야 할 경우 /root/.config/에서 설정파일이 없다며 에러를 내뱉을때 옵션인 --config=/home/유저_이름/.config/를 지정해 줌으로서 해결할 수 있다.
만일 윈도우에서 WSL 기능을 사용해서 Bash를 돌리고 있다면 그냥 리눅스의 설치법을 따라하면 된다. 특기된 윈도우용 설치법은 Powershell 전용.
3.1. 설정법
rclone config를 친 이후 사용하고자 하는 클라우드를 골라서 해당 클라우드의 사용에 필요한 정보값을 입력하면 설정은 일단 끝나게 된다.
4. 옵션
5. 팁
5.1. NAS 백업?
NAS 등에서 rclone을 사용해서 클라우드 스토리지를 3차 백업으로 사용할 때는 주의해야 할 점이 몇 가지 있다.
클라우드 스토리지의 태반이 업로드가 심하게 느리다는 문제가 있다. 따라서 rclone으로 3차 백업 대상인 데이터가 들어있는 하드 디스크를 '''바로''' 지정해놓고 클라우드 스토리지에 올리도록 SSH를 통해 명령을 내려놓고 신경을 꺼버리게 되면 며칠 후 스핀업을 백몇시간까지 하다가 하드가 뻗어버리면서 데이터와 함께 죽어버리게 된다. HDD는 장시간으로 작업이 이어지면 읽기든 쓰기든 간에 암과 모터에 계속 부담이 가해지기 때문에 죽어버린다.
그러므로 컴퓨터를 사용하는 것보다는 라즈베리 파이 등의 컴퓨팅 보드에 SSD를 완충용으로 연결해서 이용하는 것이 좋다. SSD를 캐쉬 드라이브로 사용해 내부망으로 <200mb/s 의 속도로 NAS의 데이터를 SSD로 옮긴 후 이를 컴퓨팅 보드에서 Copy가 아닌 Move를 하도록 설정한 후 스크립트를 이용해서 주기적으로 계속 SSD에 써지는 데이터를 rclone의 move 대기열에 추가하도록 설정해두면 NAS의 하드가 제 수명보다 빨리 죽는 일을 막을 수 있다. 이런 완충용 저장장치로는 하드디스크보다는 SSD를 사용하는 게 내구성, 수명 면에서 좋다. [3]
이후 PHP와 nginx로 웹 프론트엔드를 만들어서 진행정도를 관찰하는 것도 좋다.
5.2. 구글 드라이브
구글 드라이브는 최근까지도 10mb/s는 물론이고 50mb/s 까지도 나오는 경우가 더러 있었지만,
기업체에 무제한 용량의 드라이브 공간을 제공하는 Gsuite의 등장 이후 여러 개인들이 이를 사용해서 페타바이트 수준까지 저장해 가며 과도한 트래픽을 부과하고 있었고 거기에 아마존의 무제한 스토리지 서비스를 이용하던 이들이 아마존이 서비스 중단을 선언하자 클라우드에 있던 데이터를 로컬에 저장할 공간이 없던 처지에 대안으로서 구글 드라이브로 클라우드간 파일 직접 이동이라는 부하를 마구 걸어대자 구글이 인프라 보호를 위해서 칼을 꺼내들었다.
때문에 이젠 사실상 정말로 기업체에서 세무나 회계 서류 따위를 차곡차곡 모아둘때나 무리없을 수준인 업로드 속도 1.5mb/s 이상을 얻기가 힘들 정도로 구글에서 제한을 걸어 두었다.
거기에 기본적으로 Rclone에서 구글 드라이브에 연결하는 설정 파일을 작성할때 드라이브 업로드용 API 아이디와 비밀번호란을 공란으로 남기면 Rclone에서 제공하는 구글 드라이브 API를 사용하므로 1.5mb/s가 500kb/s로 떨어지는 경우도 더러 존재한다(...)
이때 Rclone의 기본 API 대신 자신이 직접 자신 소유의 구글계정으로 https://console.cloud.google.com/에서 프로젝트를 하나 생성한 후 구글 드라이브용 API를 무료로 발급받아 자신의 Rclone에 연계해 API 아이디와 비밀번호를 설정 할 때 넣으면 훨씬 쾌적한 업로드 환경을 누릴 수 있다.
물론 무료 API인 만큼 일정 이상의 부하를 가하거나 업로드 쿼리를 설정 미스로 너무 자주 요청하게 되면 구글에서 해당 프로젝트를 24시간 밴을 때려버리니 유의.
5.3. 아마존닷컴 S3
5.4. 원드라이브
rclone을 사용해서 Onedrive를 네트워크 드라이브로 마운트하거나 폴더 sync가 가능하다. 현재(2021년 2월) 확인 결과 https://your_org-my.sharepoint.com/ 의 Business 계정은 rclone config 과정에서 Auth Error가 발생하고, https://onedrive.live.com/?cid=**** Domain의 개인 One drive계정은 특별한 어려움 없이 서버 인증을 받을 수 있다. rclone으로 OneDrive 마운트하는 방법
5.5. 얀덱스 드라이브
[1] 구글 개발자용 구글 드라이브 API에 들어가보면 확실하게 태평양 표준시 기준으로 자정에 리셋된다고 나와있다. 한동안 동서양을 막론하고 커뮤니티에서 서로 궁금해 했었는데 아직까지도 나무위키를 제외한 웹상에 확실하게 답이 안 나와 있다. 한국시간으로 오후 5시에 해당한다.[2] .config 처럼 숨김처리되는 설정파일을 dotfile이라고 한다.[3] SSD가 모든 경우에 좋다는 건 아니고 완충용으로 더 낫다는 것이다. 운영체제 설치용 저장장치의 경우 특정 장소에 계속 임시파일과 캐쉬파일을 써대는데다 컨트롤러가 저질이기까지 하면 SSD의 쉘들이 사정없이 죽어버린다.