구글 드라이브를 Synology NAS에 마운트 하는 방법 - rclone

프로필

2018. 2. 23. 15:15

이웃추가


rclone, synology, google team drive, telegram push

rclone 를 아래 경로에서 다운 받는다.
제 경우 synology 411+ (intel cpu) 라 linux에 386 으로 다운로드
https://rclone.org/downloads/

압축풀고 ( synology 에서는 7z 로 풀면 됨 )
풀어논 경로로 들어가서

https://rclone.org/install/
여기 사이트에서 설치 방법대로 진행한다.

요약 : 단독 실행파일이라 실행 권한 주고, /usr/bin 으로 복사
(아래 한줄한줄 실행)

sudo cp rclone /usr/bin/
sudo chown root:root /usr/bin/rclone
sudo chmod 755 /usr/bin/rclone


이제 rclone 환경설정을 해야 한다.
(클라우드 종류 선택)
난 구글 드라이브 중에서도 파생되어 나온 구글 팀 드라이브
다행이 rclone 에서 지원을 해주니 ... 이 글을 적는것이다. ㅋ

자세한 config 설정은 아래 링크를 정독하여 주시고 
https://rclone.org/docs/

간단하게 설명해본다.

# rclone config
라고 입력하면 아래 처럼 목록이 나온다.


처음 하는것이니 n 이라 입력

No remotes found - make a new one
n) New remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
n/r/c/s/q> n

리모트 연결할 이름을 물어보는데
샘플문서에 remote 로 되어있어, 나도 간편하게 remote
name> remote


사용하는 클라우드를 물어보는데 10번 구글 드라이브

client_id> 
라고 물어보는데 그냥 엔터
알아도 엔터. (안다고 깝치다가 개 고생했다. 그냥 엔터)

client_secret> 
물어본다. 그냥 엔터

service_account_file> 
파일 있냐 물어본다. 엔터
너 자동으로 할꺼야?

n 이라고 입력

뭐 긴 영어줄이 나오면 http 로 시작하는 부분부터 복사해서 브라우져 붙여넣기 (구글 인증 한다)

계정 선택하고

아래 허용 눌러주고

인증된 코드가 나오면 그걸 복사 해서
붙여 넣기 하자.


Google Team Drive 이냐 ? 물어봄. 
나는 y

팀드라이브 번호가 나온다. 나는 1번


맞냐? y

종료 q

설정이 만들어졌다.

명령어
rclone lsd remote:

라고 입력하면 구글 드라이브의 폴더가 보일것이다.

파일복사 명령
rclone copy /home/source/test.txt  remote:backup

시놀로지에서는 특정 빈 폴더를 하나 만들고
마운트 명령을 해서 구글 드라이브를 연결 할 수 있다.
어떤 이유에서 인지 (SAMBA)  쓰기 명령이 잘 안되어,
우선은 읽기 전용으로 시놀에 연결하여
탐색기도 보이고, 각종 서비스에서도 구글드라이브 연결된 폴더가 보이도록 하고  

파일 복사는 rclone copy [소스] [대상]
파일 이동은 rclode move [소스] [대상]
으로 사용 해볼까 한다. (셋팅 하루차임)

마운트 방법
rclone mount --umask 0 --allow-other --read-only remote:/구글드라이브폴더 /volume1/pds/main &

언마운트 방법
fusermount -uz /volume1/pds/main/


-- 파일 MOVE 상세 명령 
  -v 정보출력,
  ---delete-empty-src-dirs  빈폴더 삭제
  --log-file=/var/log/rclone.log 로그 파일 남기기

rclone move -v --delete-empty-src-dirs --log-file=/var/log/rclone.log 원본 remote:/대상


그외에 윈도우에서는 
https://www.raidrive.com/

탐색기에 드라이브 처럼 연결해서 사용할수 있고

smartFTP 사용하여 파일 여러개를 동시에 업로드 하면서
빠른 업로드 속도를 노려볼수도 있겠다.


18. 3. 7 - TIP 추가

업로드가 완료되면 텔레그램으로 Push 알람이  오면 좋을듯 하여
아래 코드를 만들었습니다. 

#!/bin/bash rclone move -v --delete-empty-src-dirs --log-file=/var/log/rclone.log upload_folder remote:/public_pds/uploads/ python /volume1/admin/push_msg.py upload_complete

 /volume1/admin/send.sh 에 생성.

# -*- coding: utf-8 -*- # 텔레그램 메세지 보내기 # import sys from urllib import quote, unquote import urllib2 import os # 토큰 TELEGRAM_TOKEN = 'botXXXXXXXXXXXXXXXXXXXXXX' TELEGRAM_CHAT_ID = 'XXXXXXXX' def push_msg( msg ): if not TELEGRAM_TOKEN == '' : url ='https://api.telegram.org/' + TELEGRAM_TOKEN + '/sendMessage?chat_id=' + TELEGRAM_CHAT_ID + '&text='+quote(msg) print 'push message : ' + msg print url urllib2.urlopen(url) # UTF-8 확인사살 reload(sys) sys.setdefaultencoding('utf-8') if __name__ == "__main__" : push_msg ( sys.argv[1] )

push_msg.py 도 같은 폴더에 생성.

TELEGRAM_TOKEN 
TELEGRAM_CHAT_ID 는 자신에 맞게 넣어줘야 한다.

TELEGRAM_TOKEN 값은 텔레그램 봇을 만들어야 알수있는데 
텔레그램 봇 만드는 방법을 모르는분은
구글 검색을 해보자

나도 봇 만드는 법을 적어 두긴 했는데 ... 참고 해보세요.
https://blog.naver.com/binsoore/221004102383


TELEGRAM_CHAT_ID 는 텔레그램에서의 나 자신의 ID 값이다.
이것을 알려면 먼저 봇이랑 친구를 맺어서 채팅방을 만들고
채팅창에 아무 내용이나 하나 보낸 다음

아래 API 를 웹브라우저 주소줄에서 호출하면
result 값으로 알수있다.  
(봇이 받은 message 를 가져오는 api 이다)

https://api.telegram.org/botXXXXXXXXXXXXX:AAE5vXHIAFscPHOxmuNDhBgB8SO5Ww3YxMc/getUpdates
( XXXXXXX 는 봇 TELEGRAM_TOKEN  값으로 바꿔야함. )


result 값

{"ok":true,"result":[{"update_id":12345, "message":{"message_id":1234,"from":{"id":123456789,"is_bot":false,"first_name":"abcd","last_name":"abcd","username":"abcd","language_code":"ko"},"chat":{"id":123456789,"first_name":"abcd","last_name":"abcd","username":"abcd","type":"private"},"date":1520396528,"text":"hello"}}]}

message 항목의 id 값이 CHAT_ID 값이다. ( 123456789  )
위 값을 복사해서 push_msg.py 에 TELEGRAM_CHAT_ID 에 적어준다.


그리고 쉘 파일에 실행권한을 주고
chmod 755  /volume1/admin/send.sh

업로드 할 폴더가 /volume1/pds/upload_folder  라고 한다면

/volume1/pds  에서 (한단계 앞에서)

/volume1/admin/send.sh &

실행한다.

업로드가 완료되면 upload_complete 이라는 메세지가 올것이다.

P.S
메세지만 test 해볼려면
# python /volume1/admin/push_msg.py Hello 

빈수레
빈수레

화려하지 않은 인생을 살고 있는 한 남자