복구 가능한 아카이브

복구 가능한 아카이브

NFS 서버에 일부 대규모 디렉토리 구조를 보관해야 합니다. 조만간 필요할 가능성은 거의 없습니다. 정책상의 이유로만 보관됩니다.

나는 이것을 위해 타르볼을 만들고 있으며 결국에는 테이프에 쓸 수도 있습니다.

한 가지 문제 - 매우 큰 볼륨(10TB 이상)에 약간의 어려움을 겪고 있습니다. 실행 시간이 밤새도록 방치될 만큼 길고 어떤 경우에는 "멈춘" 것처럼 보입니다. 이는 말하기가 너무 쉽지 않습니다. 배경이 있는 것 tar xvfz.

그런 다음 공간 부족, 네트워크 중단 등과 같은 문제는 단일 세션에서 완료되지 않은 작업의 경우 아카이브가 a) 완전하고 b) 완전히 유효한지 완전히 확신할 수 없음을 의미합니다.

그래서 몇 가지 조언을 바랍니다. 이상적으로는 다시 시작하지 않고도 복사본을 여러 번 전달할 수 있는 rsync와 같은 재개 가능한 것을 원합니다.

"tar.gz에 rsync"하는 방법이 있나요? 파일 쓰기를 확인하는 저렴한 방법은 무엇입니까? 저는 현재 "추출, 샤섬 및 비교" 작업을 하고 있지만 이는 상당히 비용이 많이 들고 집약적인 프로세스이기도 합니다.

답변1

백업을 분할하는 것이 문제 해결을 위한 단계가 될 수 있을까요?

tar cvzf - /your/dir/ | split --bytes=1000MB - backup.tar.gz

아니면 한 번 살펴볼 수도 있습니다 dar. 분할 기능이 내장되어 있습니다. http://dar.linux.free.fr/doc/Features.html

dar또한 중단된 백업 작업을 재개하는 방법에 대한 유용한 정보 도 찾았습니다 .

http://sourceforge.net/p/dar/mailman/message/30863378/

답변2

작업이 성공했는지 확인하려면 && echo각 작업 tar에 다음 항목을 추가 하면 됩니다.

tar cvzf target.tar "$source" && echo "$source tarred successfully" >> progress.log

회복하는 데 도움이 되지는 않지만 적어도 이렇게 하면 tar효과가 있는지 알 수 있습니다.

도움이 될 수 있는 또 다른 방법은 먼저 gzip을 사용하고그 다음에아스팔트:

find "$source" -type f -exec gzip {} + && tar cvf "$source".tgz "$source" && 
    echo "$source tarred successfully" >> progress.log

이렇게 하면 파일이 압축되었는지 쉽게 확인할 수 있습니다. 작업 tar은 상대적으로 저렴하며 압축하면 속도가 느려집니다. 이 둘을 분리하면 보다 세밀하게 제어할 수 있습니다.

관련 정보