Bash + rclone · OneDrive ↔ Google Drive · 오픈 소스 운영 가이드
Bash와 rclone을 이용한 복사 전용 클라우드 전송
rclone은 이미 클라우드 페이지네이션, 재시도, 재개 가능한 전송, 공급자 해시를 처리할 수 있습니다. 엔지니어링 과제는 이러한 기본 기능을 오류 시 중단되고 용량을 고려하는 운영 절차로 감싸는 것입니다.
업데이트 ; 20 분 소요.
간단한 답변
FileArk는 대규모 또는 무인 마이그레이션을 위한 더 간편한 관리형 옵션입니다. 온라인으로 전송을 실행하고, 수 테라바이트 규모의 작업을 대상으로 테스트되었으며, 완료 전에 각 결과를 확인합니다. 셸로 데이터 경로를 제어하려는 운영자를 위해 이 MIT 라이선스 Bash 래퍼는 로컬 스테이징을 통해 제한된 크기의 배치를 복사하고, 두 전송 구간을 바이트 단위로 검증하며, 소스 파일을 절대 삭제하지 않습니다.
모든 공급자 클라이언트를 다시 구축하지 않고 rclone을 래핑하는 이유
rclone은 셸 워크플로에 성숙한 공급자 추상화, OAuth 구성, 페이지네이션, 재시도 동작, 재개 가능한 전송, 동시 실행 제어, 인벤토리 명령, 검증 명령을 제공합니다. 따라서 래퍼는 복사 전용 명령, 제한된 스테이징, 용량 예비분, 확정적 파일 목록, 영구적인 진행 기록과 같은 마이그레이션 불변 조건에 집중할 수 있습니다.
그렇다고 작업이 자동화되는 것은 아닙니다. 운영자는 여전히 원격 구성, 토큰 보안, 네트워크 가동 시간, 프로세스 감독, 로컬 디스크, 로그, 공급자 제한, 실패한 객체 검토, 대상 승인을 책임져야 합니다. FileArk는 이 절차를 워크스테이션이나 서버가 아닌 관리형 온라인 워크플로로 운영하려는 사용자를 위한 서비스입니다.
스크립트는 rclone move, sync, delete, purge 또는 rmdirs를 절대 호출하지 않습니다. 탐색에는 lsf와 about을, 각 구간의 전송에는 copy를, 전체 바이트 검증에는 check --download를 사용합니다. 삭제되는 것은 검증을 마친 로컬 스테이징 디렉터리의 파일뿐입니다.
Bash 버전과 MIT 라이선스 다운로드
Bash 및 rclone 전송 프로그램 다운로드
배치 한도, 로컬 및 대상 예비 공간, 전체 바이트 검증, 체크포인트, 재시도 제어, 네트워크가 필요 없는 데모를 갖춘 복사 전용 래퍼입니다.fileark-cloud-transfer.sh · Bash 4 이상 · rclone · jq · MIT 라이선스
MIT 라이선스 다운로드
FileArk 수동 전송 스크립트 두 개에 모두 적용되는 사용 허가 고지입니다.LICENSE-fileark-cloud-transfer.txt · MIT · 일반 텍스트
네트워크 연결 없이 운영자 데모 실행하기

데모는 인수 구문 분석 단계에서 종속성 확인 전에 종료되므로 rclone이나 jq를 설치하기 전에도 안전하게 실행할 수 있습니다. 출력에는 금지된 파괴적 작업과 두 가지 용량 예비분이 표시되며, 마지막에는 소스 삭제 횟수가 나옵니다.
chmod +x fileark-cloud-transfer.sh
bash -n fileark-cloud-transfer.sh
./fileark-cloud-transfer.sh --demo
./fileark-cloud-transfer.sh --help운영에 필요한 종속 항목 설치 및 구성하기
공식 안내에 따라 최신 rclone 릴리스를 설치하고, 운영 체제의 패키지 관리자를 통해 jq를 설치하세요. 이 래퍼는 엄격한 오류 처리와 최신 조건식을 사용하므로 Bash 4 이상이 필요합니다.
rclone config를 실행하고 onedrive:와 gdrive:처럼 서로 다른 이름의 원격 저장소 두 개를 만드세요. 정책이나 속도 제한 때문에 전용 OAuth 애플리케이션이 필요하다면 자체 공급자 클라이언트 ID와 비밀 키를 입력하세요. rclone은 OAuth 토큰을 구성 파일에 저장합니다. 제한적인 권한으로 이 파일을 보호하고 스크립트와 함께 배포하지 마세요.
래퍼를 실행하기 전에 읽기 전용 목록 명령과 할당량 명령으로 각 원격 저장소를 확인하세요. 특정 하위 트리만 대상이라면 onedrive:Department/Archive와 같은 경로를 사용하세요.
rclone version
rclone config
rclone lsd onedrive:
rclone lsd gdrive:
rclone about onedrive: --json | jq
rclone about gdrive: --json | jq바이트를 이동하기 전에 확정적 인벤토리 고정하기
래퍼는 명시적인 탭 구분자와 sp 형식을 사용해 rclone lsf를 재귀적으로 실행하며, 크기와 경로가 차례로 나오는 결과를 생성합니다. 각 크기가 숫자이고 각 경로가 상대 경로인지 검증한 다음, 검증된 체크포인트에 이미 있는 경로를 제외합니다.
Bash 버전은 탭, 캐리지 리턴 또는 줄바꿈이 포함된 파일 이름을 거부합니다. 줄바꿈으로 구분되는 --files-from-raw 목록에서는 이러한 이름을 모호함 없이 표현할 수 없기 때문입니다. 이런 이름이 있다면 Python 버전이나 해당 용도에 맞게 설계된 인벤토리 형식을 사용하세요.
경로 체크포인트는 의도적으로 단순하고 검사하기 쉽게 설계되었습니다. 실행 중 소스 경로가 그대로 유지된다는 전제하에 작동합니다. 가능하면 소스에 대한 쓰기를 중지하세요. 동시 변경이 예상된다면 인벤토리를 다시 생성하고 대조하세요.
rclone lsf "$SOURCE" \
--recursive \
--files-only \
--format "sp" \
--separator