7zip을 사용한 증분 백업


17

Google에서 검색하고 검색했지만 7zip 명령 줄 유틸리티가 증분 백업을 수행하는 데 사용하는 명령을 찾을 수 없습니다. 누군가가 명령을 공유 할 수 있습니까?

감사

btw이 링크를 찾았습니다 : http://wmug.co.uk/wmug/b/sean/archive/2009/03/20/powershell-amp-7zip-incremental-backup-solution.aspx . 그러나 증분이라고하더라도 차등 백업을위한 것 같습니다.

답변:


11

간단해야하며,이를 사용하여 아카이브를 작성하고 점진적으로 업데이트하십시오.

7zr u -up0q3r2x2y2z1w2 {archive}.7z {path}

이 페이지 는 업데이트 옵션에 대한 참조를 제공합니다.

다음과 같이 번역됩니다.

  • p0 - "파일이 아카이브에 있지만 와일드 카드와 일치하지 않는 경우"아카이브에서 파일을 제거하십시오.
  • q3- "파일이 아카이브에 존재하지만 디스크에는 존재하지 않는 경우"-아카이브에서 파일을 제거하고 추출시 파일 시스템에서 파일을 제거하십시오 .
  • r2 - "파일이 아카이브에 없지만 디스크에 존재하는 경우"파일을 아카이브에 압축하십시오.
  • x2 - "아카이브의 파일이 디스크의 파일보다 최신 인 경우"이전 파일을 아카이브에 압축하십시오.
  • y2 - "아카이브의 파일이 디스크의 파일보다 오래된 경우"최신 파일을 아카이브에 압축하십시오.
  • z1 - "아카이브의 파일이 디스크의 파일과 동일"인 경우 파일의 압축 버전을 재사용하십시오.
  • w2 -파일 크기가 다른 경우 수정 된 파일을 아카이브에 압축하십시오.

안녕하세요, 그 많은 옵션은 무엇을 의미합니까?
Zhianc

파일 상태에서 동작으로의 맵입니다. 7 가지 가능한 상태가 있습니다.
ArtemGr

3
증분 백업이 아닙니다. 이 명령은 차등 백업을 수행하고 마지막 전체 백업 이후 변경 사항이있는 새 아카이브를 작성합니다. 증분 백업은 이전 증분 백업 (diff of diff) 이후의 변경 사항을 추적합니다.
stil

나는 이것이 단지 archive.7z를 업데이트하여 새 아카이브를 만드는 것과 거의 동일하지만 재사용 할 때 약간 빠르다는 점에서 잘못되었다고 생각합니다. 아래의 Javier의 답변은 차이가있는 것 같습니다.
Tuntable December

아카이브가 크고 증분이 작은 경우 " 비트 빠른 "은 상당히 중요합니다. 전체 아카이브를 다시 포장하지 않는 것은 증분 백업의 요점 중 하나입니다. 또한 이것은 차등 백업이 아닙니다. 기본 아카이브를 업데이트하고 차이를 별도의 아카이브에 저장하지 않습니다. 다른 솔루션을 더 좋아한다면 자유롭게 투표하십시오. 고양이를 껍질을 벗기는 방법은 여러 가지가 있습니다.
ArtemGr

8

증분 백업 을 수행하려면으로 수정 된 파일 목록과 함께 7-zip을 제공 -i@fileList해야하며 이러한 목록을 어떻게 든 정교화해야합니다. thumbdrive통한 삭제 된 질문 오프라인 증분 백업 의 archive.org 미러에서 md5 서명을 사용하여 Unix 명령 행을 찾아 fileList를 작성할 수 있습니다.

7-zip 업데이트 작업을 통해 기본 / 기본 아카이브 이후에 차이가있는 (삭제 된 파일 포함) 보조 아카이브를 생성 할 수 있습니다. 문제 자체에 명시된대로 차등 백업의 이름이 올바르게 지정됩니다.

WPCTips "7-zip을 사용한 차등 백업"(아카이브) 에서이 주제에 대한 훌륭한 기사를 찾았습니다 . GUI 프로그램 (Toucan)을 사용하거나 명령 행에이 레시피를 사용하는 것이 좋습니다.

7z u {base archive.7z} -u- -"up0q3r2x2y2z0w2!{differential.7z}" {folder to archive}

이것은 7zr u -up0q3r2x2y2z1w2 {archive}.7z {path}ArtemGr 이 제안한 것과 약간 다릅니다 .

  • -u- 메인 아카이브를 수정해서는 안된다고 알려줍니다
  • "-up0q3r2x2y2z0w2!{differential.7z}"대상 차등 아카이브와 각 조건 / 상태에 대한 각 파일에 대해 수행 할 작업을 지정합니다. 파일 시스템에서 새 파일 또는 수정 된 파일 추가, 7zip 아카이브에만있는 ​​파일 제거, 나머지는 무시합니다.
    "!" bash인용하지 않는 한 문자를 가로 챌 것입니다.

그 비밀의 세부 사항에 대해 궁금한 경우를 대비하여 p0q3r2x2y2z0w2

<state> | State condition
p | File exists in archive, but is not matched with wildcard.   Exists, but is   not matched 
q | File exists in archive, but doesn't exist on disk.
r | File doesn't exist in archive, but exists on disk.
x | File in archive is newer than the file on disk.
y | File in archive is older than the file on disk.
z | File in archive is same as the file on disk
w | Can not be detected what file is newer (times are the same, sizes are different)

<action> | Description 
0 | Ignore file (don't create item in new archive for this file) 
1 | Copy file (copy from old archive to new) 
2 | Compress (compress file from disk to new archive) 
3 | Create Anti-item (item that will delete file or directory during extracting). This feature is supported only in 7z format. 

2
답변 Javier에 감사하고 수퍼 유저에 오신 것을 환영합니다. 링크가 사라질 경우 링크를 요약하는 정책이 있습니다. 명령이 어떻게 증가 백업을 수행하는지 설명 할 수 있습니까? (특히 up0q3r2x2y2z0w2부분!) 감사합니다 :-)
bertieb

1
@bertieb 감사합니다. 더 명확 해지기를 바랍니다.
Javier

1
@DanielSokolowski이 질문에 대한 답변인지 확실하지 않습니다. 증분 백업 (A + b + c + d)을 수행 한 경우 각 아카이브에서 생성 한 순서대로 추출해야합니다. 차등 백업을 수행 한 경우 (A + (b + c + d)). 추출해야하는 2 개의 아카이브입니다. 마지막 아카이브에는 이전 아카이브 및 추출 순서에 대한 정보가 포함되어 있으므로 단일 명령으로 추출 할 수 있습니다. 그러나 나는 그런 기능을 알지 못한다.
Javier

1
공유 한 기사가 @Javier를 열지 않습니다
alper

1
감사합니다 @ alper. Archive.org는에서 extint WPC 팁 문서의 일부 스냅 샷이 web.archive.org/web/20160822111118/http://www.wpctips.com:80/...을 . 응답을 수정해야 할 것 같습니다.
Javier

4

시간 방향을 변경하여 증분 백업을 쉽게 수행 할 수 있습니다. 즉, 항상 최신 백업을 전체 사본으로 유지하고 차등 파일을 과거에 보관합니다.

# create the difference step into the past
7z u {base archive.7z} {folder to archive} -mx=9 -u- -up1q1r3x1y1z0w1!{decrement.7z}

# update the Archive to the latest files
7z u {base archive.7z} {folder to archive} -mx=9 -up0q0x2

기본 아카이브에는 항상 최신 버전이 포함되어 있으며 "감소"단계를 적용하여 이전 버전을 다시 만들 수 있습니다. 약간의 스크립팅을 사용하면 증분 파일에 올바른 번호를 적용 할 수 있습니다.


친절하게 설명해 주시겠습니까? 현재 백업, 1 일 전 백업, 2 일 전 백업을 생성하는 예를보고 싶습니다. 그런 다음 '2 일 전'백업을 복원하는 예입니다.
Daniel Sokolowski

0

배치 파일에서 enabledelayedexpansion을 사용하면 "!"를 인용해야합니다. 이 두 ^^ 이런

7z u {existing archive.7z} -u- -up0q3r2x2y2z0w2^^!{new differential.7z} {folder or files to archive}

저것을보기 위해 시간이 걸렸습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.