나는 최근 다음을 사용하여 일부 데이터를 보관하기로 결정했습니다.타르. 데이터는 동일한 폴더의 수많은 백업으로 구성됩니다. 즉, 중복된 내용이 많이 포함되어 있다는 뜻입니다. Tar에는 인덱스가 없기 때문에 중복이 많은 데이터에서는 제대로 작동하지 않는다는 내용을 읽었습니다. 그래서 기본적으로 내 질문은 Tar가 그러한 데이터를 보관하는 데 적합할까요?
저는 아카이브의 모든 원본 데이터를 보존하는 데 주로 관심을 두고 있습니다. 여기에는 생성, 수정, 액세스 등 모든 파일 타임스탬프가 포함됩니다.
답변1
물론 Tar는 얼마나 많은 중복 항목이 있는지에 관계없이 이러한 백업을 보관할 수 있습니다. 100개의 서로 다른 폴더에 abc.doc 파일의 중복이 100개 있으면 해당 파일은 100번 보관됩니다. 즉, 효율적이지 않습니다.
백업 도구가 데이터 중복을 제거할 수 있다면 100개의 동일한 파일을 인식하고 하나를 백업한 후 99번 참조하게 됩니다. 해당 버전 중 하나가 변경되면 참조가 제거되고 별도로 백업됩니다.
답변2
GNU 타르
생성 시간:
Linux는 실제로 파일 생성 시간을 기록하지 않습니다. 여기에는 때때로 생성 시간으로 오해되는 타임스탬프 가 있지만 ctime
실제로는 "inode 변경 시간"입니다. 파일이나 해당 권한, 소유자 등에 대한 마지막 변경 시간을 기록합니다. 보다 자주 변경됩니다 mtime
. 스탬프 ctime
는 커널에 의해 처리되며 사용자가 임의의 값으로 설정할 수 없습니다(비록 현재 시간으로 쉽게 재설정할 수는 있지만).
수정 시간:
mtime
에 의해 보존됩니다tar
액세스 시간:
tar
일반적으로 원본 파일에서도 액세스 시간이 변경됩니다. 플래그 를 사용하면 이를 방지할 수 있습니다 --atime-preserve
. --preserve
권한(및 디렉터리 정렬 순서)을 유지하는 태그가 필요할 수도 있습니다 .
tar
보관된 파일에 대해 시간 보존을 할 수 있는지는 모르겠지만 언제든지 다음 방법으로 수정할 수 있습니다.
- 압축 해제
- 각 파일에 사용
touch -a -d TIME FILE
(시간 형식 포함[[CC]YY]MMDDhhmm[.ss]
) - 다음으로 다시 타르링
tar --atime-preserve
경고: --atime-preserve
현재를 사용하면 atime을 기억하므로 읽은 후 보존할 수 있습니다. 대부분의 시스템에서 이로 인해 ctime이 변경되어 때로는 다른 소프트웨어(예: 보안 소프트웨어)를 방해할 수 있습니다.
기타 소프트웨어
당신은 조사할 수도 있습니다 rsync
(참조이 기사예를 들어) 또는 버전 제어 시스템(예 git
: )