[리눅스 데스크탑] 구글 드라이브 등 클라우드 스토리지를 드라이브로 마운트 해서 사용
리눅스 데스크탑에서 구글 드라이브 등 클라우드 스토리지를 드라이브로 마운트 해서 사용하는 방법.

노트북에 페도라44 KDE버전을 설치하고 최근 광고에 많이 뜨던 pCloud 골든위크 20GB 캠페인에 가입도 해서 새로 rclone으로 클라우드 스토리지 마운트를 하게 되서 이 기회에 블로그에 정리를 해 본다.
rclone이란?
리눅스에서 여러 클라우드 스토리지 등을 연결해서 사용하는 툴이다. 로컬과 네트워크에 있는 파일들을 서로간의 이동, 복사, 싱크할 수 있다. 그리고 오늘 사용할 마운트 기능도 있는데 이 기능을 사용하면 클라우드 스토리지를 로컬 드라이브처럼 사용할 수 있다.
구글 드라이브 클라이언트 ID, 비밀번호 발급
구글 드라이브 정책상 클라이언트ID, 비밀번호를 발급 받아서 등록해야 사용할 수 있다. 발급은 구글 API 콘솔에서 가능하다.
구글 API 콘솔 왼쪽 메뉴에서 OAuth 동의 화면 -> 클라이언트로 들어간 다음 화면 위쪽편에 클라이언트 만들기를 선택한다.
OAuth 클라이언트 ID 만들기 화면이 나오는데 애플리케이션 유형은 데스크톱 앱을 선택. 이름은 아무거나 써도 되는데 사용할 클라이언트 이름이 좋다. 예) 페도라 노트북
그리고 만들기 버튼을 클릭.

화면 설명에 나온대로 이 창을 닫으면 비밀번호는 다시는 볼 수 없으니 잘 메모해 두자. 만약에 비밀번호를 잃어버리면 다시 작성하면 된다.
rclone에서 구글 드라이브 추가하기
터미널에서 rclone config 명령을 입력하고 아래처럼 진행하면 된다.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
rclone config e) Edit existing remote n) New remote d) Delete remote r) Rename remote c) Copy remote s) Set configuration password q) Quit config e/n/d/r/c/s/q> n Enter name for new remote. name> gdrive Option Storage. Type of storage to configure. Choose a number from below, or type in your own value. 리스트에서 구글 드라이브를 찾아서 번호 쓰면 됨. 리스트 내용은 생략 Storage> 23 Option client_id. OAuth Client Id. Leave blank normally. Enter a value. Press Enter to leave empty. 여기에 아까 발급 받은 클라이언트ID를 입력한다. client_id> 976492655911-j1d0libpslunr8gfo74b0ukgjuh3hi1p.apps.googleusercontent.com Option client_secret. OAuth Client Secret. Leave blank normally. Enter a value. Press Enter to leave empty. 여기에 아까 발급 받은 클라이언트 보안 비밀번호를 입력한다. client_secret> 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 Edit advanced config? y) Yes n) No (default) y/n> n Use web browser to automatically authenticate rclone with remote? * Say Y if the machine running rclone has a web browser you can use * Say N if running rclone on a (remote) machine without web browser access If not sure try Y. If Y failed, try N. y) Yes (default) n) No y/n> y |
y를 입력하면 브라우저에서 구글 로그인 화면이 나오니 사용할 구글 드라이브와 연결된 구글 아이디로 로그인하고 클라이언트ID 발급 받은 클라이언트와 연결 설정을 하면 된다.
여기까지 하면 rclone에 구글 드라이브가 gdrive라는 이름으로 등록이 완료 된다.
클라우드 스토리지를 드라이브로 마운트하기
rclone 명령으로 파일 이동이나 복사, 싱크 등등 이런저런 파일 관리는 할 수 있는데 일일이 명령어을 치기는 귀찮을 뿐더러 클라우드 스토리지에 있는 파일과 로컬에 있는 파일 싱크 유지하기가 쉽지 않다.
리눅스 데스크탑을 쓰고 있으면 편하게 드라이브로 마운트 해서 돌핀이나 노틸러스 등의 파일 관리자로 열어서 보고, 파일 관리를 하는 것이 편하다.
systemd의 서비스로 드라이브 마운트하는 rclone 명령을 등록시켜두고 시스템 부팅 후 20초 딜레이로 실행하게 한다.
홈디렉토리에서 마운트할 폴더 작성. 여기에 클라우드 스토리지 파일들이 들어가게 된다.
|
1 |
[elmilin@fedora]~% mkdir gdrive |
등록할 서비스 파일을 보관할 디렉토리 작성
|
1 |
[elmilin@fedora]~% mkdir -p .config/systemd/user |
구글 드라이브를 마운트하는 rclone 명령을 서비스로 등록하기 위해 서비스 파일을 작성한다.
|
1 2 |
[elmilin@fedora]~% cd .config/systemd/user nano gdrive.service |
아래 내용을 입력하고 저장한다.
|
1 2 3 4 5 6 7 8 9 10 11 |
[Unit] Description=Google Drive Mount User Service [Service] Type=simple ExecStart=/usr/bin/rclone mount gdrive: %h/gdrive --vfs-cache-mode full --rc-addr 127.0.0.1:5572 ExecStop=/usr/bin/fusermount -u %h/gdrive Restart=on-failure [Install] WantedBy=default.target |
–rc-addr 파라메터는 여러 클라우드 스토리지를 사용할 때 충돌을 방지하기 위해서 넣는다. 각 클라우드 스토리지마다 뒤에 포트번호를 다르게하면 된다. 디폴트가 5572이고 그 다음에 추가하는 클라우드 스토리지는 5573, 5574 이렇게 하나씩 늘려가면 된다.
서비스 실행을 부팅 후 20초 후에 지연해서 실행시키기 위해 타이머를 작성한다.
|
1 |
nano gdrive.timer |
아래 내용을 입력하고 저장한다.
|
1 2 3 4 5 6 7 8 9 |
[Unit] Description=Run Google Drive mount with delay [Timer] OnBootSec=20s Unit=gdrive.service [Install] WantedBy=timers.target |
타이머를 서비스로 등록한다.
|
1 |
systemctl --user enable --now gdrive.timer |
이 명령으로 gdrive.timer가 바로 실행되고 서비스로도 등록 되어서 시스템 부팅때마다 rclone moount를 실행해서 드라이브로 마운트 된다.
다른 클라우드 스토리지를 여러개 추가하기
다른 클라우드 스토리지를 더 등록하고 싶을 때는 rclone config로 클라우드 스토리지에 접속 설정을 만든다.
홈 디렉토리에 마운트할 폴더를 만들고, service, timer 파일을 복사하고 열어서 rclone config로 등록한 이름과 폴더 경로를 수정한다.
그리고 systemctl로 서비스 등록하면 된다. 위에 설명한대로 service 파일 안에 rclone 명령에 파라메터에서 포트 번호를 다르게 지정해야 한다.
마무리
rclone에서 지금 현재 지원하는 클라우드 스토리지 종류는 60여개가 있다. 여기에 들어가 있는 클라우드 스토리지는 전부 마운트 해서 사용 가능하니 용도에 따라 여러개의 클라우드 스토리지를 연결해 두고 사용하면 상당히 편하게 사용할 수 있다.
어떤 클라우드 스토리지도 이렇게 rclone을 이용해서 드라이브로 마운트해서 사용하면 일관성 있게 파일 관리자에서 사용할 수 있다. 실제 사용해 보면 로컬과 네트워크에 있는 파일을 관리하기는 윈도우보다 리눅스가 훨씬 편리하다고 느낄 것이다.