웹사이트 검색

Rclone - 다른 클라우드 스토리지의 파일 디렉터리 동기화


Rclone은 Go 언어로 작성된 명령줄 프로그램으로, Amazon Drive, Amazon S3, Backblaze B2, Box, Ceph, DigitalOcean Spaces, Dropbox, FTP, 구글 클라우드 스토리지, 구글 드라이브 등

보시다시피, 여러 플랫폼을 지원하므로 서버 간 또는 개인 저장소 간에 데이터를 동기화하는 데 유용한 도구입니다.

Rclone에는 다음과 같은 기능이 있습니다

  • 파일 무결성 무결성을 보장하기 위해 MD5/SHA1 해시를 항상 확인합니다.
  • 타임스탬프는 파일에 보존됩니다.
  • 전체 파일 단위로 부분 동기화가 지원됩니다.
  • 새 파일이나 변경된 파일에 대한 복사 모드입니다.
  • 디렉터리를 동일하게 만드는 단방향 동기화입니다.
  • 확인 모드 – 해시 동등성 확인.
  • 네트워크(예: 두 개의 서로 다른 클라우드 계정)와 동기화할 수 있습니다.
  • (암호화) 백엔드.
  • (캐시) 백엔드.
  • (Union) 백엔드.
  • 선택적 FUSE 마운트(rclone 마운트).

Linux 시스템에 rclone을 설치하는 방법

rclone 설치는 두 가지 방법으로 완료할 수 있습니다. 더 쉬운 방법은 다음 명령을 실행하여 설치 스크립트를 사용하는 것입니다.

curl https://rclone.org/install.sh | sudo bash

이 스크립트가 하는 일은 스크립트가 실행되는 OS 유형을 확인하고 해당 OS와 관련된 아카이브를 다운로드하는 것입니다. 그런 다음 아카이브를 추출하고 rclone 바이너리를 /usr/bin/rclone에 복사하고 파일에 755 권한을 부여합니다.

마지막으로 설치가 완료되면 다음 줄이 표시됩니다.

Rclone v1.44 has successfully installed.
Now run “rclone config” for setup, Check https://rclone.org/docs/ for  more details.

rclone을 설치하는 두 번째 방법은 다음 명령을 실행하는 것입니다.

curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
cd rclone-*-linux-amd64

이제 바이너리 파일을 복사하고 실행 권한을 부여하십시오.

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

rclone 맨페이지를 설치합니다.

mkdir -p /usr/local/share/man/man1
cp rclone.1 /usr/local/share/man/man1/
mandb 

Linux 시스템에서 rclone을 구성하는 방법

다음으로 해야 할 일은 rclone config를 실행하여 구성 파일을 만드는 것입니다. 향후 rclone 사용을 위한 인증에 사용됩니다. 구성 설정을 실행하려면 다음 명령을 실행하세요.

rclone config

다음 프롬프트가 표시됩니다.

2018/11/13 11:39:58 NOTICE: Config file “/home/user/.config/rclone/rclone.conf” not found - using defaults
No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q>

옵션은 다음과 같습니다:

  • n) – 새로운 원격 연결 생성
  • s) – 구성에 대한 비밀번호 보호 설정
  • q) – 구성 종료

이 튜토리얼의 목적에 따라 "n"을 누르고 새 연결을 생성해 보겠습니다. 새 연결에 이름을 지정하라는 메시지가 표시됩니다. 그런 다음 구성할 스토리지 유형을 선택하라는 메시지가 표시됩니다.

연결 이름을 'Google'로 지정하고 숫자 12 아래에 있는 'Google 드라이브 '를 선택했습니다. 나머지 질문은 빈 “ ”인 기본 답변을 그대로 두면 답변할 수 있습니다.

요청을 받으면 'autoconfig'를 선택할 수 있습니다. 그러면 Google 드라이브에 연결하는 데 필요한 모든 정보가 생성되고 복제 권한이 부여됩니다. Google 드라이브의 데이터를 사용하세요.

프로세스는 다음과 같습니다.

Google Application Client Secret - leave blank normally.
client_secret>
Scope that rclone should use when requesting access from drive.
Choose a number from below, or type in your own value
 1 / Full access all files, excluding Application Data Folder.
   \ "drive"
 2 / Read-only access to file metadata and file contents.
   \ "drive.readonly"
   / Access to files created by rclone only.
 3 | These are visible in the drive website.
   | File authorization is revoked when the user deauthorizes the app.
   \ "drive.file"
   / Allows read and write access to the Application Data folder.
 4 | This is not visible in the drive website.
   \ "drive.appfolder"
   / Allows read-only access to file metadata but
 5 | does not allow any access to read or download file content.
   \ "drive.metadata.readonly"
scope> 1
ID of the root folder - leave blank normally.  Fill in to access "Computers" folders. (see docs).
root_folder_id> 
Service Account Credentials JSON file path - needed only if you want use SA instead of interactive login.
service_account_file>
Remote config
Use auto config?
 * Say Y if not sure
 * Say N if you are working on a remote or headless machine or Y didn't work
y) Yes
n) No
y/n> y
If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
Log in and authorize rclone for access
Waiting for code...
Got code
Configure this as a team drive?
y) Yes
n) No
y/n> n
--------------------
[remote]
client_id = 
client_secret = 
scope = drive
root_folder_id = 
service_account_file =
token = {"access_token":"XXX","token_type":"Bearer","refresh_token":"XXX","expiry":"2018-11-13T11:57:58.955387075Z"}
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y

Linux 시스템에서 rclone을 사용하는 방법

Rclone에는 함께 사용할 수 있는 옵션과 명령이 상당히 많이 포함되어 있습니다. 우리는 더 중요한 것들 중 일부를 다루려고 노력할 것입니다:

원격 디렉토리 나열

rclone lsd <remote-dir-name>:

rclone을 사용하여 데이터 복사

rclone copy source:sourcepath dest:destpath

rclone이 중복 항목을 찾으면 해당 항목은 무시됩니다.

rclone으로 데이터 동기화

디렉터리 간에 일부 데이터를 동기화하려면 sync 명령과 함께 rclone을 사용해야 합니다.

명령은 다음과 같아야 합니다.

rclone sync source:path dest:path [flags]

이 경우 소스가 대상과 동기화되어 대상만 변경됩니다! 이 방법은 변경되지 않은 파일을 건너뜁니다. 이 명령은 데이터 손실을 일으킬 수 있으므로 “–dry-run ”과 함께 사용하여 정확히 무엇이 복사되고 삭제되는지 확인할 수 있습니다.

rclone을 사용하여 데이터 이동

데이터를 이동하려면 move 명령과 함께 rclone을 사용할 수 있습니다. 명령은 다음과 같아야 합니다.

rclone move source:path dest:path [flags]

소스의 콘텐츠가 이동(삭제)되어 선택한 대상에 배치됩니다.

기타 유용한 rclone 명령

대상에 디렉터리를 생성합니다.

rclone mkdir remote:path

디렉토리를 제거하려면.

rclone rmdir remote:path

소스와 대상의 파일이 일치하는지 확인하십시오.

rclone check source:path dest:path

파일 삭제:

rclone delete remote:path

각 rclone 명령은 서로 다른 플래그와 함께 사용할 수 있으며 자체 도움말 메뉴를 포함합니다. 예를 들어 삭제 옵션을 사용하여 선택적 삭제를 수행할 수 있습니다. 100M보다 큰 파일을 삭제하려는 경우 명령은 다음과 같습니다.

rclone --min-size 100M delete remote:path

rclone을 최대한 활용하려면 각 명령에 대한 설명서와 도움말을 검토하는 것이 좋습니다. rclone의 전체 문서는 https://rclone.org/에서 확인할 수 있습니다.

결론

rclone은 다양한 클라우드 저장소 제공업체 간의 데이터를 관리하는 데 도움이 되는 강력한 명령줄 유틸리티입니다. 이 기사에서는 rclone 기능의 표면적인 부분만 다루었지만 특히 cron 서비스(예:)와 함께 사용하면 훨씬 더 많은 것을 얻을 수 있습니다.