내 애플리케이션에는 총 10TB가 넘는 수천 개의 파일이 포함되어 있습니다.
이 데이터를 어딘가(아마도 AWS S3)에 백업해야 합니다.
제 생각에는:
- 백업 중인 데이터 압축
- 백업을 단일 파일로 저장
예를 들어 gzip으로 압축된 tar 파일입니다.
크기 때문에 gzip 압축 tar 파일이 너무 커서 로컬에서 생성할 수 없습니다.
내가 어떻게 할 수있는:
- 이러한 모든 폴더와 파일을 단일 압축 파일로 AWS S3에 스트리밍하시겠습니까?
- 압축된 파일을 S3에서 내 디스크로 다시 스트리밍하고 원래 파일 시스템 레이아웃을 유지하시겠습니까?
답변1
이는 기본 파이프라인 및 ssh
사용 사례입니다.
$ tar zcf - -C /path/to/your/files . | ssh S3_hostname 'cat > yourfile.tar.gz'
압축을 푼다:
$ ssh S3_hostname 'cat yourfile.tar.gz' | tar zxf - -C /path/to/extract/to
여기서 핵심은 로컬 파일 시스템의 파일 대신 / tar
에서 쓰거나 읽어야 함을 알려주는 것입니다 . 아카이브를 생성하는 경우 tar 의 데이터가 입력되고 S3 호스트에서 실행되는 원격 호출로 파이프되며 출력이 파일에 기록됩니다 . 압축 해제 시나리오에서 이는 다시 원격 호스트에서 파일을 읽기 위해 호출하는 데 사용되며 스트림은 인수에 지정된 경로로 아카이브를 추출하는 로컬 호출에 대한 스트림이 됩니다 .stdout
stdin
tar
stdout
ssh
cat
yourfile.tar.gz
ssh
cat
stdin
tar
-C