증분적으로 zip 파일 생성

증분적으로 zip 파일 생성

현재 S3에 큰 디렉터리(>100GB)가 있습니다. 이 디렉토리의 zip 아카이브를 만들고 싶습니다.

현재 해당 디렉터리의 내용을 다운로드하고 서버에 임시(임시) 디렉터리를 만듭니다. 그런 다음 zip유틸리티를 사용하여 임시 디렉터리를 보관합니다. 이는 피크 기간 동안 내 디스크 사용량이 디렉터리 크기의 2배라는 것을 의미합니다.

임시 디렉토리를 설정하는 대신 점진적으로 zip 아카이브를 구축하는 방법을 생각했습니다. zip 아카이브만 저장하면 되므로 디스크 사용량이 절반으로 줄어듭니다.

우선 이게 가능한가요? 둘째, 성능 등과 같이 내가 보지 못하는 이 접근 방식의 단점이 있습니까?

미리 감사드립니다.

답변1

예, 가능합니다. 가 생성될 zip archive.zip file때 마다 에 zip추가하려고 시도합니다 . 아카이브가 없으면 생성되고, 있으면 파일이 추가됩니다.filearchive.zip

따라서 파일을 임시 폴더에 다운로드한다고 가정합니다.

$ zip -j big.zip /tmp/download/file.dat  

여기서는 -j"정크 경로" /tmp/download/경로를 변경 big.zip하고 다음 항목만 포함합니다.file.dat

경로가 있는 아카이브를 생성하려면 작업 디렉토리가 있어야 하므로 ~/work아카이브에서 보려는 경로는 해당 작업 디렉토리에 상대적입니다. 그런 다음 파일을 다운로드하거나 생성하여 다음을 ~/work/some/path/file.dat수행합니다.

# first you need to be in the work directory, 
$ cd ~/work

# create (download) the file into relative path
$ mkdir -p some/path
$ touch some/path/file

# do the archiving
$ zip ~/big.zip some/path/file.dat

# remove the file and path to it
$ rm some/path/file.dat
$ rmdir -p some/path

# repeat for another file

관련 정보