質問がすべてを物語っています: 'zip -rv' で圧縮したいディレクトリがありますが、ファイルは常に変更されています (postgres データベース ベース バックアップ)。これにより zip が壊れますか、それとも rsync のように警告が表示されて続行されますか?
圧縮中に変更されたファイルを見つけると、tar は失敗します。ファイルの変更を生成しながらディレクトリでいくつかのテスト zip を実行しましたが、エラーは発生しませんでしたが、これは単に運が良かったため、zip がすでに圧縮されていて、変更されたファイルにまだ到達していないためかもしれません。この時点での私のプラン B は、変更されたディレクトリを別のフォルダーに rsync してから、静的な場所を zip で圧縮することですが、これでは 2 倍のスペースが必要になるため、できれば避けたいです。圧縮中に zip がファイルの変更を処理できない場合、それを処理するユーティリティはありますか?
ちなみにOSはcentos 6です。
答え1
これらはまったく処理されません。zip はアーカイブの作成を開始するときにディレクトリ ツリー全体を読み取ります。
- 圧縮操作中にファイルが削除された場合、警告メッセージが表示されます。
- 圧縮操作中にファイルが作成された場合、そのファイルはアーカイブには保存されません。もしすでに読み取られたディレクトリに作成されました。zip がそのディレクトリの内容を読み取る前にファイルが作成された場合、そのファイルはアーカイブ内にあります。
- 圧縮操作中にファイルが変更された場合、その内容はアーカイブに追加されたときの内容のままになります。ファイルはアーカイブに追加されるときに読み取られます。