이전 글목록 보기다음 글
linux2026-09-14T04:35:07.861Z

rclone 사용 가이드

Anya2_Forger profileAnya2_Forger
edited-images.png

rclone 사용 가이드

1. rclone이란?

rclone은 쉽게 말하면 터미널에서 사용하는 파일 복사 프로그램입니다.

그런데 일반적인 cp와 다른 점이 있습니다.

일반 cp

서버 폴더  ──────────>  서버의 다른 폴더

rclone은 다음과 같은 곳을 연결할 수 있습니다.

Ubuntu 서버
     │
     │ rclone
     │
     ├── Google Drive
     ├── Dropbox
     ├── OneDrive
     ├── S3
     └── 기타 클라우드 저장소

따라서 예를 들어:

/home/pion79/usb_git-repo
          │
          │ rclone
          ▼
       Google Drive

처럼 사용할 수 있습니다.


2. rclone에서 꼭 알아야 하는 개념

rclone을 이해할 때 가장 중요한 것은 remote입니다.

예를 들어 현재 사용하신 설정이:

Name   Type
====   ====
gitrepo drive

라면,

gitrepo

가 Google Drive에 붙여놓은 이름(alias) 입니다.

즉,

gitrepo:

라고 쓰면

"Google Drive의 gitrepo라는 remote를 사용하겠다"

라는 의미입니다.

예를 들어:

rclone lsd gitrepo:

Google Drive의 최상위 폴더를 보여줘

라는 뜻입니다.


3. 설치

Ubuntu에서:

sudo apt update
sudo apt install rclone

설치 확인:

rclone version

예:

rclone v1.xx.x

4. rclone 설정 확인

현재 설정되어 있는 remote를 확인하려면:

rclone listremotes

예:

gitrepo:

또는:

rclone config

실행하면:

Current remotes:

Name                 Type
====                 ====
gitrepo              drive

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config

이 화면은 rclone의 설정 관리 화면입니다.


5. Google Drive 연결하기

처음 Google Drive를 연결할 때는:

rclone config

그리고:

n) New remote

를 선택합니다.

예를 들어:

name> gitrepo

다음에 저장소 종류에서 Google Drive를 선택합니다.

Storage> drive

그 후 여러 설정 질문이 나오는데, 초보자라면 기본값을 사용하면서 진행하는 것이 좋습니다.


6. Google 인증

여기서 중요한 부분이 있습니다.

rclone이 Google Drive에 접근하려면 Google 계정 인증이 필요합니다.

환경에 따라 브라우저 인증을 할 수 있습니다.

서버가 GUI가 없는 Ubuntu Server라면 보통:

Use auto config?
y/n>

에서 상황에 따라 n을 선택하고 다른 컴퓨터에서 인증하는 방식 등을 사용합니다.

이미 현재 gitrepo가 정상적으로 설정되어 있다면 이 과정을 다시 할 필요는 없습니다.


7. Remote의 폴더 보기

가장 먼저 알아야 할 명령입니다.

rclone lsd gitrepo:

lsddirectory 목록을 보여줍니다.

예:

          -1 2026-09-13  test
          -1 2026-09-13  backup
          -1 2026-09-13  git

8. 파일까지 보기

rclone ls gitrepo:

예:

123456 README.md
234567 test.zip
345678 backup.tar.gz

파일의 크기까지 확인할 수 있습니다.


9. 사람이 보기 좋은 형태로 보기

제가 가장 추천하는 명령입니다.

rclone lsl gitrepo:

예:

123456 2026-09-13 21:30:00 README.md
234567 2026-09-13 21:31:00 backup.zip

10. 특정 Google Drive 폴더 보기

예를 들어 Google Drive에:

backup

폴더가 있다면:

rclone lsd gitrepo:backup

파일까지 보려면:

rclone ls gitrepo:backup

즉:

gitrepo:

는 Google Drive의 루트이고,

gitrepo:backup

은 Google Drive의 backup 폴더입니다.


11. 가장 중요한 명령: copy

로컬 파일을 Google Drive로 복사:

rclone copy /home/pion79/test.txt gitrepo:

그러면:

/home/pion79/test.txt
        │
        │ rclone copy
        ▼
Google Drive

에 올라갑니다.


12. 폴더 복사

예를 들어:

/home/pion79/test_project

전체를 Google Drive에 복사하려면:

rclone copy /home/pion79/test_project gitrepo:test_project

결과:

Google Drive
└── test_project
    ├── file1
    ├── file2
    └── file3

13. copy에서 매우 중요한 점

다음 명령:

rclone copy /home/pion79/test_project gitrepo:test_project

동기화가 아닙니다.

즉, Google Drive에 이미 있는 파일을 무조건 삭제하지 않습니다.

예를 들어 로컬:

A
B
C

Google Drive:

A
B
C
D

상태에서 copy하면:

A
B
C
D

가 유지됩니다.

따라서 백업에는 copy가 비교적 안전한 출발점입니다.


14. sync는 주의해야 합니다

다음 명령이 있습니다.

rclone sync /home/pion79/test_project gitrepo:test_project

이것은 copy와 상당히 다릅니다.

sync는 기본적으로:

로컬 폴더와 Google Drive 폴더를 똑같이 만들어라

라는 의미입니다.

예를 들어:

로컬
A
B
C

Google Drive:

A
B
C
D

sync를 하면 Google Drive의 D가 삭제될 수 있습니다.

즉:

copy
→ 추가/변경된 것을 복사

sync
→ 양쪽을 동일하게 맞춤

초보자라면 sync를 사용할 때 특히 주의하세요.


15. copyto

특정 파일을 특정 이름으로 복사할 때 사용합니다.

rclone copyto /home/pion79/test.txt gitrepo:backup/test.txt

즉:

로컬 test.txt
       ↓
Google Drive
backup/test.txt

16. Google Drive에서 서버로 복사

반대 방향도 가능합니다.

rclone copy gitrepo:backup /home/pion79/backup

즉:

Google Drive
    │
    │ rclone
    ▼
Ubuntu 서버

17. Google Drive의 파일 하나 가져오기

rclone copyto gitrepo:backup/test.zip /home/pion79/test.zip

18. 파일 삭제

Google Drive에서:

rclone delete gitrepo:test.txt

특정 폴더:

rclone delete gitrepo:backup

하지만 delete주의해서 사용해야 합니다.


19. 폴더 자체 삭제

폴더 안의 내용까지 삭제하려면:

rclone purge gitrepo:backup

purge는 상당히 강력합니다.

backup/
 ├── A
 ├── B
 └── C

전부 삭제됩니다.

따라서 초보 단계에서는 purge를 함부로 사용하지 않는 것을 권합니다.


20. 삭제 전에 확인하기

rclone에는 아주 좋은 기능이 있습니다.

--dry-run

예를 들어:

rclone sync /home/pion79/test gitrepo:test --dry-run

실제로 변경하지 않고:

실행하면 무엇이 삭제되고 무엇이 복사되는지

확인할 수 있습니다.

특히 sync, delete를 사용할 때 --dry-run을 습관적으로 사용하는 것을 추천합니다.


21. 실제 실행 결과 자세히 보기

rclone copy /home/pion79/test gitrepo:test -P

-P는 진행 상황을 보여줍니다.

예:

Transferred:    100 MiB / 100 MiB
Checks: ...
Transferred: ...
Elapsed time: ...

파일을 많이 올릴 때 매우 유용합니다.


22. -P의 의미

다음 두 명령은:

rclone copy /home/pion79/test gitrepo:test
rclone copy /home/pion79/test gitrepo:test -P

기능은 같지만 두 번째는 진행 상황을 화면에 표시합니다.


23. 실제 백업에 추천하는 명령

예를 들어 서버의:

/home/pion79/test_prjects

를 Google Drive에 백업한다고 하면:

rclone copy /home/pion79/test_prjects gitrepo:backup/test_prjects -P

이렇게 시작하는 것이 좋습니다.


24. 로컬 Git 저장소를 Google Drive에 백업

현재 사용하고 계신 구조를 예로 들면:

/home/pion79/usb_git-repo

안에 Git bare repository들이 있다고 했을 때,

/home/pion79/usb_git-repo
├── image_editor.git
├── test001.git
└── ...

전체를 Google Drive에 백업할 수 있습니다.

rclone copy /home/pion79/usb_git-repo gitrepo:git-backup -P

결과:

Google Drive
└── git-backup
    ├── image_editor.git
    ├── test001.git
    └── ...

25. Git 저장소 백업에서 중요한 점

Git bare repository는 일반 파일과 동일하게 복사할 수 있습니다.

예:

image_editor.git/
├── HEAD
├── config
├── objects
├── refs
└── ...

따라서:

rclone copy /home/pion79/usb_git-repo/image_editor.git \
            gitrepo:git-backup/image_editor.git \
            -P

처럼 백업할 수 있습니다.

다만 Git 저장소가 동시에 변경되는 동안 파일 단위 복사를 하는 것보다는, 필요하다면 git bundle 또는 저장소의 안전한 백업 절차를 함께 고려하는 것이 더 좋습니다.


26. rclone copy가 이미 있는 파일을 또 올리나?

보통 rclone은 파일의 크기와 수정시간 등을 비교하여 이미 동일하다고 판단되는 파일은 다시 전송하지 않습니다.

그래서 같은 명령을 반복 실행할 수 있습니다.

rclone copy /home/pion79/usb_git-repo gitrepo:git-backup -P

다시 실행한다고 해서 모든 파일을 매번 처음부터 업로드하는 것은 아닙니다.

이 특성 때문에 자동 백업에 적합합니다.


27. check

로컬과 원격의 파일이 같은지 검사할 수 있습니다.

rclone check /home/pion79/usb_git-repo gitrepo:git-backup

이것은 상당히 유용합니다.

예를 들어:

ERROR : file.txt: Sizes differ

같은 문제가 있는지 확인할 수 있습니다.


28. Google Drive 사용량 확인

rclone about gitrepo:

Google Drive의 저장공간 정보를 확인할 수 있습니다.

예:

Total:   100 GiB
Used:     35 GiB
Free:     65 GiB

29. 폴더 크기 확인

rclone size gitrepo:git-backup

예:

Total objects: 12345
Total size: 4.5 GiB

30. 폴더 만들기

rclone mkdir gitrepo:backup

그러면:

Google Drive
└── backup

폴더가 만들어집니다.

다만 copy할 때 필요한 폴더가 없으면 rclone이 만들어주는 경우가 많기 때문에 반드시 mkdir을 먼저 할 필요는 없습니다.


31. 이름 변경

rclone moveto gitrepo:old.txt gitrepo:new.txt

폴더나 파일을 이동할 때 사용할 수 있습니다.


32. 서버에서 Google Drive를 폴더처럼 사용하기

rclone에는 상당히 재미있는 기능이 있습니다.

rclone mount

예를 들어:

Google Drive
     │
     ▼
/home/pion79/google-drive

처럼 마운트할 수 있습니다.

그러면:

cd /home/pion79/google-drive
ls

처럼 일반 폴더처럼 사용할 수 있습니다.

하지만 백업 목적이라면 rclone mount보다 rclone copy를 먼저 사용하는 것을 추천합니다.


33. copy, sync, move 차이

이 세 개는 반드시 구분해 두세요.

명령

의미

copy

복사

sync

양쪽을 동일하게 맞춤

move

이동

copyto

특정 위치로 복사

moveto

특정 위치로 이동

초보자에게는:

백업 → copy
정확한 미러링 → sync
이동 → move

정도로 기억하면 됩니다.


34. 가장 안전한 사용 순서

저라면 처음에는 다음 순서로 연습하겠습니다.

① Remote 확인

rclone listremotes

② Google Drive 확인

rclone lsd gitrepo:

③ 테스트 폴더 만들기

mkdir ~/rclone-test

④ 테스트 파일 생성

echo "hello rclone" > ~/rclone-test/test.txt

⑤ 업로드

rclone copy ~/rclone-test gitrepo:rclone-test -P

⑥ Google Drive에서 확인

rclone ls gitrepo:rclone-test

⑦ 다시 서버로 다운로드

mkdir ~/rclone-download
rclone copy gitrepo:rclone-test ~/rclone-download -P

⑧ 확인

cat ~/rclone-download/test.txt

35. 자동 백업으로 발전시키기

여기서부터가 실제 서버 운영에서 중요합니다.

예를 들어 매일 새벽 3시에:

/home/pion79/usb_git-repo

Google Drive/git-backup

으로 백업할 수 있습니다.

직접 실행하면:

rclone copy \
  /home/pion79/usb_git-repo \
  gitrepo:git-backup \
  -P

그런 다음 이것을 cron이나 systemd timer로 자동 실행할 수 있습니다.

구조는:

              매일 03:00
                   │
                   ▼
             자동 실행
                   │
                   ▼
             rclone copy
                   │
                   ▼
      /home/pion79/usb_git-repo
                   │
                   ▼
            Google Drive

36. 자동화할 때 로그 남기기

예를 들어:

rclone copy \
  /home/pion79/usb_git-repo \
  gitrepo:git-backup \
  --log-file=/home/pion79/rclone-backup.log \
  --log-level INFO

그러면:

/home/pion79/rclone-backup.log

에 작업 기록이 남습니다.


37. 중요한 rclone 옵션

초보자라면 우선 아래 옵션만 기억하세요.

옵션

의미

-P

진행 상황 표시

--dry-run

실제 변경 없이 테스트

--log-file

로그 파일 저장

--log-level INFO

일반적인 로그

--progress

진행 상황 표시

-v

자세한 출력

-vv

매우 자세한 디버깅 출력


38. rclone 명령의 기본 구조

rclone 명령은 대부분 이런 형태입니다.

rclone [명령] [원본] [목적지] [옵션]

예:

rclone copy /home/pion79/data gitrepo:backup -P

각각:

rclone
  │
  ├── copy        ← 무엇을 할 것인가?
  │
  ├── /home/...   ← 어디에서?
  │
  ├── gitrepo:... ← 어디로?
  │
  └── -P          ← 옵션

이 구조를 이해하면 rclone 명령을 훨씬 쉽게 볼 수 있습니다.


39. 자주 사용하는 명령만 따로 정리

실제로 서버에서 자주 사용할 것은 이 정도입니다.

Remote 확인

rclone listremotes

Drive 폴더 보기

rclone lsd gitrepo:

Drive 파일 보기

rclone ls gitrepo:

상세 파일 보기

rclone lsl gitrepo:

로컬 → Google Drive

rclone copy /local/path gitrepo:backup -P

Google Drive → 로컬

rclone copy gitrepo:backup /local/path -P

동기화

rclone sync /local/path gitrepo:backup

동기화 전에 테스트

rclone sync /local/path gitrepo:backup --dry-run

용량 확인

rclone about gitrepo:

폴더 크기

rclone size gitrepo:backup

두 위치 비교

rclone check /local/path gitrepo:backup

파일 삭제

rclone delete gitrepo:backup/file.txt

40. 현재 환경에서는 이렇게 구성하는 것을 추천

지금 사용하고 계신 서버 환경을 기준으로 한다면 다음 구조가 깔끔합니다.

Ubuntu Server
│
├── /home/pion79/test_prjects
│
├── /home/pion79/usb_git-repo
│      │
│      ├── image_editor.git
│      ├── test001.git
│      └── ...
│
└── rclone
       │
       ▼
   Google Drive
       │
       ├── git-backup/
       │
       ├── server-backup/
       │
       └── project-backup/

그리고 역할을 나누는 것이 좋습니다.

Git 작업
   ↓
USB Git Repository

중요 데이터 백업
   ↓
rclone copy
   ↓
Google Drive

USB를 Git 저장소로 사용하면서 Google Drive를 별도의 백업 저장소로 사용하는 구조입니다.


41. 특히 기억해야 할 5가지

rclone을 처음 사용할 때는 이것만 먼저 기억하셔도 됩니다.

# 1. 연결된 remote 확인
rclone listremotes

# 2. Google Drive 보기
rclone lsd gitrepo:

# 3. 서버 → Google Drive
rclone copy /home/pion79/data gitrepo:backup -P

# 4. Google Drive → 서버
rclone copy gitrepo:backup /home/pion79/data -P

# 5. sync 하기 전 반드시 시험
rclone sync /home/pion79/data gitrepo:backup --dry-run

특히 copysync의 차이가 가장 중요합니다.

백업을 처음 시작할 때는 copy를 사용하고, sync는 정확히 어떤 삭제/변경이 일어나는지 --dry-run으로 확인한 뒤 사용하세요.

현재 사용 중인 gitrepo remote가 이미 Google Drive에 정상 연결되어 있으므로, 다음 단계로는 **rclone copy → 자동 백업(cron/systemd timer) → 로그 관리 → 오래된 백업 자동 삭제 → Google Drive에서 복구**까지 하나의 실제 서버 백업 시스템으로 구성하는 것이 좋습니다.

Comments

Log in to comment

Loading comments...
이전 글목록 보기다음 글

당신의 이야기를 기다리고 있습니다