Sao lưu cộng dồn với 7zip


17

Tôi đã googled và tìm kiếm, nhưng không thể tìm thấy lệnh mà tiện ích dòng lệnh 7zip sử dụng để tạo bản sao lưu gia tăng. Vì vậy, ai đó có thể xin vui lòng chia sẻ lệnh?

Cảm ơn

btw Tôi tìm thấy liên kết này: http://wmug.co.uk/wmug/b/sean/archive/2009/03/20/powershell-amp-7zip-incremental-backup-solution.aspx . Nhưng nó dường như là để sao lưu vi sai, mặc dù nó nói tăng dần.

Câu trả lời:


11

Nếu đơn giản, hãy sử dụng điều này để tạo và cập nhật dần dần kho lưu trữ:

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

Trang này cung cấp một tài liệu tham khảo cho các tùy chọn cập nhật.

Chúng được dịch như sau:

  • p0 - Nếu "Tệp tồn tại trong kho lưu trữ, nhưng không khớp với ký tự đại diện" thì hãy xóa tệp khỏi kho lưu trữ.
  • q3- Nếu "Tệp tồn tại trong kho lưu trữ, nhưng không tồn tại trên đĩa" thì hãy xóa tệp khỏi kho lưu trữ và xóa tệp đó khỏi hệ thống tệp khi giải nén .
  • r2 - Nếu "Tệp không tồn tại trong kho lưu trữ, nhưng tồn tại trên đĩa" thì hãy đóng gói tệp vào kho lưu trữ.
  • x2 - Nếu "Tệp trong kho lưu trữ mới hơn tệp trên đĩa" thì hãy đóng gói tệp cũ hơn vào kho lưu trữ.
  • y2 - Nếu "Tệp trong kho lưu trữ cũ hơn tệp trên đĩa" thì hãy đóng gói tệp mới hơn vào kho lưu trữ.
  • z1 - Nếu "Tệp trong kho lưu trữ giống với tệp trên đĩa" thì hãy sử dụng lại phiên bản đóng gói của tệp.
  • w2 - Nếu kích thước tệp khác nhau thì hãy đóng gói tệp đã sửa đổi vào kho lưu trữ.

Xin chào, những lựa chọn đó có ý nghĩa gì?
Zhianc

Đó là bản đồ từ trạng thái tập tin thành hành động. Có bảy trạng thái có thể.
ArtemGr

3
Nó không phải là một bản sao lưu gia tăng. Lệnh này tạo một bản sao lưu khác biệt và tạo lưu trữ mới với các thay đổi kể từ lần sao lưu đầy đủ cuối cùng. Bản sao lưu tăng dần thay đổi kể từ bản sao lưu gia tăng trước đó (diff of diff).
stil

Tôi nghĩ điều này hoàn toàn sai, ở chỗ nó chỉ cập nhật kho lưu trữ.7z gần giống như chỉ tạo một kho lưu trữ mới, nhưng nhanh hơn một chút vì nó sẽ sử dụng lại. Câu trả lời của Javier dưới đây dường như là một sự khác biệt.
Tuntable

Khi kho lưu trữ lớn và gia số nhỏ, " bit quicker " là khá đáng kể. Không đóng gói lại toàn bộ kho lưu trữ là một trong những điểm của các bản sao lưu gia tăng. Ngoài ra, đây không phải là một bản sao lưu khác biệt: chúng tôi đang cập nhật kho lưu trữ chính và không lưu trữ sự khác biệt trong một kho lưu trữ riêng biệt. Nếu bạn thích các giải pháp khác hơn, hãy thoải mái nâng cấp chúng, có nhiều hơn một cách để nuôi mèo.
ArtemGr

8

Nếu bạn thực hiện sao lưu gia tăng , bạn sẽ cần cung cấp 7-zip danh sách các tệp được sửa đổi (với -i@fileList) và bằng cách nào đó bạn sẽ cần phải xây dựng danh sách đó. Tại gương archive.org của câu hỏi đã xóa, sao lưu ngoại tuyến tăng cường thông qua ngón tay cái, bạn có thể tìm thấy một dòng lệnh Unix sử dụng chữ ký md5 để tạo tệp ListList.

Hoạt động cập nhật 7-zip cho phép tạo một kho lưu trữ thứ cấp với sự khác biệt (bao gồm các tệp đã bị xóa) xảy ra kể từ khi lưu trữ cơ sở / chính. Đó được đặt tên đúng là một bản sao lưu vi sai (như đã nêu trong chính câu hỏi).

Tôi đã tìm thấy một bài viết tuyệt vời về chủ đề này tại WPCTips "Sao lưu khác biệt với 7-zip" (được lưu trữ) . Họ khuyên bạn nên sử dụng chương trình GUI (Toucan) hoặc sử dụng công thức này cho dòng lệnh:

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

Điều này hơi khác so với 7zr u -up0q3r2x2y2z1w2 {archive}.7z {path}đề xuất của ArtemGr:

  • -u- nói với kho lưu trữ chính không nên sửa đổi
  • "-up0q3r2x2y2z0w2!{differential.7z}"chỉ định kho lưu trữ vi sai đích và hành động cần thực hiện cho từng tệp cho từng điều kiện / trạng thái: thêm các tệp mới hoặc được sửa đổi trong hệ thống tệp, xóa các tệp chỉ có trong kho lưu trữ 7zip, bỏ qua phần còn lại.
    Lưu ý rằng "!" nhân vật sẽ bị chặn bởi bashtrừ khi nó được trích dẫn.

Chỉ trong trường hợp bạn tò mò về các chi tiết cụ thể của tiền điện tử đó 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
Cảm ơn bạn đã trả lời Javier và chào mừng bạn đến với Siêu người dùng. Có một chính sách ở đây là tóm tắt các liên kết trong trường hợp chúng biến mất - bạn có thể giải thích cách lệnh đạt được sao lưu gia tăng không? (đặc biệt là up0q3r2x2y2z0w2một phần!) Cảm ơn :-)
bertieb

1
@bertieb cảm ơn bạn đã cho lời khuyên. Tôi hy vọng nó rõ ràng hơn bây giờ.
Javier

1
@DanielSokolowski Không chắc chắn nếu điều này trả lời câu hỏi của bạn. Nếu bạn đã thực hiện sao lưu gia tăng (A + b + c + d), bạn sẽ phải trích xuất từ ​​mỗi kho lưu trữ theo thứ tự bạn đã thực hiện chúng. Nếu bạn đã thực hiện sao lưu vi sai (A + (b + c + d)). Đây là 2 tài liệu lưu trữ bạn phải trích xuất. Thật tuyệt khi kho lưu trữ cuối cùng chứa thông tin về các tài liệu lưu trữ trước đó và thứ tự trích xuất, do đó việc trích xuất có thể được thực hiện bằng một lệnh duy nhất. Nhưng tôi không nhận thức được tính năng như vậy.
Javier

1
bài viết bạn chia sẻ không mở @Javier
vào

1
Cảm ơn @alper. Archive.org có một số ảnh chụp nhanh của bài viết Mẹo WPC tại web.archive.org/web/20160822111118/http://www.wpctips.com:80/ . Tôi đoán tôi sẽ phải sửa đổi các phản ứng.
Javier

4

Bạn có thể dễ dàng thực hiện sao lưu gia tăng thông qua việc thay đổi hướng theo thời gian. tức là bạn luôn giữ bản sao lưu mới nhất dưới dạng bản sao đầy đủ và giữ các tệp khác biệt trong quá khứ.

# 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

Lưu trữ cơ sở luôn chứa phiên bản mới nhất và thông qua việc áp dụng "giảm dần" từng bước bạn có thể tạo lại các Phiên bản cũ hơn. Với một chút kịch bản, bạn có thể áp dụng cách đánh số đúng cho các tệp giảm dần.


Bạn có thể vui lòng giải thích về điều này? Tôi muốn thấy một ví dụ về việc tạo ra một bản sao lưu hiện tại, sao lưu 1 ngày trước, sao lưu 2 ngày trước. Và sau đó là một ví dụ về việc khôi phục bản sao lưu '2 ngày trước'.
Daniel Sokolowski

0

Trong một tệp bó, với tính năng mở rộng được kích hoạt, bạn cần trích dẫn "!" với hai ^^ như thế này

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

Mất một lúc tôi mới thấy cái đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.