원래 gdrive의 기본설정은 웹브라우저가 탑재된 시스템을 기준으로 한다. 하지만 대부분은 리눅스서버는 CLI환경이다.(웹브라우저가 탑재된 상태면 뭣하러 gdrive를 사용하나..) gdrive는 이부분에 대한 해결책을 내놓았다. 절차는 크게 다음과 같다.
1. 윈도우등의 그래픽환경에서 gdrive(윈도우용 등)를 이용하여, gdrive에 구글계정정보를 등록한다. 2. gdrive용 구글계정정보를 export하여 파일로 추출한다. 3. 추출한 파일을 리눅스(CLI환경의 서버 등)시스템에 업로드하고, gdrive(리눅스용 등)를 이용하여 계정정보를 import한다. 4. 리눅스(CLI환경의 서버 등)시스템에서 gdrive 명령을 이용하여, Googld Drive에 업로드 한다.
상당히 간단하다. 나는 스크립트를 작성하고, cron에 등록하여 주기적인 구글드라이브 백업을 구현했다. gdrive는 구글드라이버의 파일 업로드, 다운로드, 삭제 모든 권한을 가지고 있으므로, 스크립트만 잘 작성하면 오래된 파일은 자동으로 삭제 가능하다.
지금부터 내 설명은 윈도우에서 gdrive에 구글계정을 등록하고, 그것을 CLI환경의 리눅스에 적용하고 구글드라이브로 업로드 하는 것을 기준으로 한다.
1. 윈도우용 gdrive(gdrive_windows-x64.zip)를 다운 받는다. https://github.com/glotlabs/gdrive/releases에서 최신버전을 받으면 된다. 압축을 풀고, 탐색기를 보면 아래와 같은 형식으로 되어있을 것이다.
2. 경로에 마우스를 클릭하면, 아래와 같이 정확한 경로가 나온다. 경로를 저장하자.
3. 명령프롬프트를 실행한다. 그리고, 2번에서 저장했던 경로로 이동한다.
4. 아래명령을 입력한다. gdrive.exe account add
5. Client ID는 이전글 24번에서 기록을 한 구글클라우드 API의 OAuth 2.0 클라이언트 ID이다. Client secret 역시 마찬가지 이다. 입력을 하고 엔터를 누르면, 아래와 같이 URL이 나온다. 그리고 커서가 깜박인다. 그리고 gdrive 구글계정등록용 아주 작은웹서버 구동된 상태이다. 커서 깜박이는건 그대로 냅둔다. 작업이 끝나면 알아서 종료한다. 보다시피 tcp/8085를 이용하므로, 방화벽은 10분만 중지하자.
6. 웹브라우저로 URL을 열고, 계정을 선택한다.
7. 무시하고 계속을 누르자.
8. 그냥 모두선택을 체크한다. 참고적으로 아래 그림의 externel backup은 내가 작성한 OAuth 2.0 클라이언트 ID의 이름이다. 특이한건 이 이름에 gdrive나 google이란 단어가 들어가면 오류가 발생한다.
9. 그러고 나면, 웹브라우저상에 "You may now close this window."라는 문구가 나온다. 그럼 끝난 상태이다. 명령프롬프트에서 커서가 깜박이던 상태에서, gdrive명령어의 종료상태로 바뀌게 된다. 그리고 아래와 같은 메세지가 나온다.
10. 아래 명령을 입력하면, 확장자가 tar인 gdrive용 계정설정파일이 추출 된다. gdrive.exe account export <구글계정>
그리고 dir명령으로 확인해보자.
11. 추출한 파일을 리눅스서버에 업로드 한다. 그리고 리눅스용 gdrive를 다운 받는다. 그리고 tar.gz 압축을 푼다. 그리고 윈도우에서 추출했던 구글계정파일은 tar를 해제하지 않아도 된다. 해제할 필요가 없다. wget https://github.com/glotlabs/gdrive/releases/download/3.9.1/gdrive_linux-x64.tar.gz
tar zxvf gdrive_linux-x64.tar.gz
12. gdrive 실행파일은 그대로 써도 되고, 편하게 /usr/bin이나 /usr/local/bin에 옮겨도 좋다. 추출구글계정파일을 import하자. ./gdrive account import <경로와 함께 추출구글계정파일명>
13. 이제 gdrive의 모든 설정이 끝났고, 명령어를 사용해서 구글드라이브를 가지고 놀자.
구글드라이프 파일리스트 조회 gdrive files list
구글드라이브로 파일 업로드 gdrive files upload <경로와 함께 파일명>
구글드라이브에 있는 파일 삭제 gdrive files delete <구글드라이브에 있는 파일의 ID>
파일명이 아니고, 파일ID이다. 주의하자.
등 등...여러 명령어들이 있다. 나머지는 직접 만져보면서 테스트하기를 권한다.
|