증분 백업에서 tar
새 파일을 추가 할 수없는 것 같습니다.
$ tar -cvzf test.tar.gz -g test.snar a.txt
a.txt
$ tar -cvzf test2.tar.gz -g test.snar a.txt b.txt
두 번째 명령은 아무것도 반환하지 않으며 아카이브는 비어 있습니다. 그러나 파일 대신 디렉토리를 지정하면 작동합니다. 내가 여기서 잃어버린 것?
증분 백업에서 tar
새 파일을 추가 할 수없는 것 같습니다.
$ tar -cvzf test.tar.gz -g test.snar a.txt
a.txt
$ tar -cvzf test2.tar.gz -g test.snar a.txt b.txt
두 번째 명령은 아무것도 반환하지 않으며 아카이브는 비어 있습니다. 그러나 파일 대신 디렉토리를 지정하면 작동합니다. 내가 여기서 잃어버린 것?
답변:
스냅 샷 파일 a.txt
은 첫 번째 tar 명령에 포함되어 있습니다 . 두 번째 타르에서 스냅 샷은 알 수 없습니다 b.txt
. a.txt
증분 아카이브가 비어 있도록 변경되지 않았습니다.
증분 아카이브가 디렉토리 레벨에 있으면 b.txt가 디렉토리 계층 내에 존재하기 때문에 변경 (b.txt)을 감지합니다.
스냅 샷 파일이 존재하는 경우, 이 파일이 수정 결정합니다.
'--listed-incremental'옵션은 tar에 스냅 샷 파일이라는 독립형 파일에 저장된 추가 메타 데이터가있는 증분 아카이브에서 작동하도록 지시합니다. 이 파일의 목적은 마지막 백업 이후에 변경, 추가 또는 삭제 된 파일을 판별하여 다음 증분 백업에 수정 된 파일 만 포함되도록하는 것입니다. 스냅 샷 파일의 이름은 옵션에 대한 인수로 제공됩니다.
tar에 "-listed-incremental"옵션을 사용하는 것을 보셨습니까? 특정 폴더를 점진적으로 추가 할 수 있으며 --list-incremental 옵션을 사용하여 tar에 마지막으로 추가 된 이후 변경된 파일 만 압축 할 수 있습니다.
보다 일반적인 옵션은 -a 또는 append 옵션을 사용하여 새 파일을 추가하는 것입니다.이 옵션은 파일을 아카이브의 끝에 놓습니다.
이것이 백업 상황 인 경우 rsync를 더 많은 기능이 풍부한 옵션으로 생각하지만 백업 절차로 수행하려는 작업에 따라 달라집니다.
-g
의 동의어입니다 --listed-incremental
. 내 질문은 파일 목록이 아닌 디렉토리에서 작동하는 이유에 대한 자세한 내용입니다.
tar
증분 백업을 위해 디렉토리에서만 잘 작동합니까?