나의 하루
수지니의 공부 기록 일지

본문 바로가기

카테고리 없음

rclone사용해서 서버와 google drive연동하기

※ 이 글은 공용 연구 서버 기준(user 권한)을 기본으로 작성되었습니다.

 

작업하려는 상황 간단 요약

 

1️⃣ 바이너리 직접 다운로드

# 설치
cd ~
curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip

# 압축풀기
unzip rclone-current-linux-amd64.zip

 

2️⃣ 바이너리만 ~/.local/bin 으로 이동

      - 만약 sudo권한 없다면 2️⃣ - 2️⃣ 이동

     -  만약 sudo권한 있다면 2️⃣ - 1️⃣  이동

2️⃣ - 1️⃣ 

 mkdir -p ~/.local/bin
 
 sudo cp rclone-*-linux-amd64/rclone /usr/local/bin/rclone
 
 sudo chmod +x /usr/local/bin/rclone
 
 # 제대로설치되었는지 확인 - 1
 sudo chmod +x /usr/local/bin/rclone
 
 # 제대로설치되었는지 확인 - 2
 rclone version

2️⃣ - 2️⃣

# home디렉토리/.local/ 경로에 bin파일 만들기 
mkdir -p ~/.local/bin

# bin에rclone 복사하기
cp rclone-*-linux-amd64/rclone ~/.local/bin/

# chmod = 권한 변경 명령어
chmod +x ~/.local/bin/rclone

 

아후 과정은 동일!!

 

3️⃣ PATH 확인

export PATH=$HOME/.local/bin:$PATH

# 버전확인
rclone version

 

설치 완료

연동 시작

 

그전에 개인 pc에 Rclone설치하기

cmd창 켜서 하기

install code활용

*  install code 출처 : https://rclone.org/install/

 

 

→  화면과 같이 되면 성공입니다. 

 

일단 연동기를 만듭니다.

rclone config

 

아래와 같은 화면나옴

각 직사각형 칸에 답변된 대로 해야됩니다.(n은 말그대로 새로운 rclone remote만드는 거에요)

name은 그냥 "연동기 이름( testing = rclone remote )"이므로 원하는 걸로 지어주세요.

 

이렇게 번호가 쭉 뭔가 뜰텐데 구글 드라이브로 연동하고 싶은거니깐

....

Google Drive번호 찾아서 storatge에 22 입력합니다.

키보드에서 "Enter키"(스페이스바X) 누릅니다.

다 불러올 예정이므로 scope엔 1입력합니다.

편집 안할거고 그냥 업데이트만 할거니깐 n을 눌러줍니다.

브라우저가 자동 열리길 바라니깐 n 눌러지줍니다.

 

 

왼쪽은 서버, 오른쪽은 노트북 내에 cmd창입니다.

1. n을 누르면 rclone authorize~~ 가 뜹니다. 그걸 cmd창에 붙여넣으면 되요.

2. 1을 수행하면 cmd창에 토큰이 뜰겁니다. 그 토큰을 다시 config_token에 붙여넣으면 됩니다.

* 주의 : 이때 rclone설치했던 cmd창 그대로 쓰지 마시고 cmd창을 다시 켜주세요.

 

아마 인터넷 창이 뜰겁니다.

→  원하는 계정선택해주세요.

 

다음창 "계속 버튼" 누르시면 됩니다:)

 

최종적으로 아래와 같은 화면 나오면 "연동"은 성공입니다.

 

개인 드라이브면 n / 그렇지 않으면 Y

 

이대로 연동기 정보 저장할 거니 : y

더 이상 작업할 것이 없으므로 : q

 

서버 →  구글 드라이브로

rclone sync /project/sujin/test_file testing:check_it_update
  • rclone sync : 서버 -> 구글 동기화 명령어
  • /project/sujin/test_file : 동기화하려는 파일 이름
  • testing : rclone이름(일명 연동기)
  • check_it_update : drive에 저장될 파일 이름

 

만약 나중에 다시 사용하고싶다면?

rclone config reconnect testing:

rclone config reconnect  →   다시 사용하겠단 선언

testing  →   이전에 만들었던 연동기 이름

 →  다시 연동할겁니까? : y

 →  인터넷 자동 열겁니까? (try N.이므로): n

 →  토큰 얻는 방법은 위에 참고

 

위에는 수동

여기부턴 특정 시간에 자동 연동 시도 시작

 

기본 구조 이해

[처음 1번만]
브라우저 로그인 → OAuth 인증 → token 발급
              ↓
rclone.conf에 token 저장
              ↓
[이후]
rclone은 token을 들고 자동으로 출입

 

1. 코드 입력

crontab -e

 

2. 파일창에 코드 입력

예시 코드 

0 0 * * * /usr/local/bin/rclone copy /mnt/sda2/Test/X_server connect:backup -P >> /mnt/sda2/Test/rclone.log 2>&1

 

코드 구성 설명

0 0 * * * /usr/local/bin/rclone copy [드라이브로 옮기려는 서버 디렉토리] [만들어둔 rclone이름]:[구글 드라이브에 저장될 파일 이름] -P >> [결과 로그 저장될 경로파일].log 2>&1

 

세세한 설명

 →   0 0 * * * : 0분 0시 일(1~31) 월 일

 →   /usr/local/bin/rclone : rclone 절대경로

 →   copy : 파일 특정 시간에만 복사 기능

 →   /mnt/sda2/Test/X_server : 서버 내에 드라이브로 동기화 시키려는 파일

 →   connect : 위에서 미리 만들어두었던 rclone 연동기 이름

 →   :backup 드라이브에서 저장될 파일 디렉토리 이름

 →   -P : 드라이브로 옮기겠습니다.

 →   >> /mnt/sda2/Test/rclone.log 2>&1 : 로그 저장 경로입니다.

 

기다리면 됩니다!

우와아아아ㅏㅏㅏㅏ