web-dev-qa-db-ja.com

7zipを使用した増分バックアップ

私はグーグルで検索しましたが、7Zipコマンドラインユーティリティが増分バックアップの作成に使用するコマンドが見つかりません。誰かがコマンドを共有してくれませんか?

ありがとう

ところで、このリンクを見つけました: http://wmug.co.uk/wmug/b/sean/archive/2009/03/20/powershell-amp-7Zip-incremental-backup-solution.aspx 。ただし、増分と表示されていても、差分バックアップ用のようです。

17
gyaani_guy

シンプルである必要があります。これを使用して、アーカイブを作成し、増分更新します。

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

このページ は、更新オプションのリファレンスを提供します。

それらは次のように翻訳されます。

  • p0-「ファイルはアーカイブに存在するが、ワイルドカードと一致しない」場合、アーカイブからファイルを削除します。
  • q3-「ファイルはアーカイブに存在するがディスクには存在しない」場合、アーカイブからファイルを削除し、抽出時にファイルシステムから削除します
  • r2-「ファイルはアーカイブには存在しないが、ディスクには存在する」場合は、ファイルをアーカイブにパックします。
  • x2-「アーカイブ内のファイルがディスク上のファイルよりも新しい」場合は、古いファイルをアーカイブにパックします。
  • y2-「アーカイブ内のファイルがディスク上のファイルより古い」場合は、新しいファイルをアーカイブにパックします。
  • z1-「アーカイブ内のファイルがディスク上のファイルと同じ」場合は、ファイルのパックバージョンを再利用します。
  • w2-ファイルサイズが異なる場合は、変更されたファイルをアーカイブにパックします。
11
ArtemGr

増分バックアップ を実行する場合、7-Zipに(-i@fileListを使用して)変更されたファイルのリストを提供する必要があり、そのようなリストをどうにかして詳しく説明する必要があります。削除された質問のarchive.orgミラーで thumbdriveを介したオフラインの増分バックアップ md5署名を使用してUnixコマンドラインを見つけ、fileListを作成できます。

7-Zip更新操作では、ベース/プライマリアーカイブ以降に発生した差分(削除されたファイルを含む)を使用してセカンダリアーカイブを作成できます。これは適切に差分バックアップと呼ばれます(質問自体に記載されています)。

WPCTips "Differential Backups with 7-Zip"(archived) で、このトピックに関する優れた記事を見つけました。彼らは、GUIプログラム(Toucan)を使用するか、コマンドラインに次のレシピを使用することを推奨しています。

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

これは、ArtemGrによって提案された7zr u -up0q3r2x2y2z1w2 {archive}.7z {path}とは少し異なります。

  • -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. 
8
Javier

時間の方向を変更することで、増分バックアップを簡単に実行できます。つまり、常に最新のバックアップをフルコピーとして保持し、差分ファイルを過去に保持します。

# 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

ベースアーカイブには常に最新バージョンが含まれており、「デクリメント」を段階的に適用することにより、古いバージョンを再作成できます。少しスクリプティングを使用すると、適切な番号をデクリメンタルファイルに適用できます。

4
iligid

バッチファイルでは、enabledelayedexpansionを使用して、「!」を引用符で囲む必要があります。このように2つあります^^

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

それを見るのにしばらくかかった。

0
Tuntable