Zpaq を使用したアーカイブディレクトリ

Zpaq を使用したアーカイブディレクトリ

私は古いシステムを改善するために管理しているサーバーのバックアップシステムをセットアップしようとしています。私はズパック古いシステムを使用していても良好な圧縮が提供されlrzip -z、リンクされたページには、新しいバックアップ インスタンスごとに変更されたデータのみがバックアップされる増分圧縮が提供されると記載されているためです。

現在、次のスクリプトを使用してバックアップを作成しています (すべてのデータはserverディレクトリに保存されます)。

cd server
zpaq pa ../backup.zpaq *

このスクリプトは、サーバー ディレクトリの直下にあるすべてのファイルを含むアーカイブを作成しますが、ディレクトリ システム全体を再帰的にスキャンすることはありません。ディレクトリ システム全体をスキャンするにはどうすればよいでしょうか。aオプションを削除するか、ディレクトリを親からバックアップしてもserver、問題は引き続き発生します。

マニュアルページツールの作者によって書かれたと思われる内容は次のとおりです。

名前がディレクトリの場合、その中のすべてのファイルとサブディレクトリが再帰的に含まれます。

Ubuntuのマニュアルページ再帰については何も言及されていません。私は Ubuntu のリポジトリから を使用してツールをインストールしましたapt-get install zpaq。Ubuntu の zpaq がこの質問の冒頭でリンクしたものと何らかの点で異なる場合は、リンクされた zpaq の Ubuntu パッケージがどこにあるか説明してください。

答え1

zpaq期待どおりに動作するソリューションが必要なようです。ただし、 を使用している場合はbash、この回避策で必要な結果が得られるはずです。 と入力しますshopt -s globstar。次に、これまで使用していたコマンドを、1 つだけ変更して実行します。

zpaq pa ../backup.zpaq **

globstarモードが有効な 場合、**現在のディレクトリ内のエントリのリストを展開します; つまり、現在のディレクトリとそれ以下のディレクトリです。 と同様に*、無視されます.(隠し) ファイル。それらも含める場合は、shopt -s dotglobそれも含めてください。(これらを 1 つのコマンドに組み合わせることができます: shopt -s globstar dotglob.)

これをスクリプトで行うのが最も便利です。ただし、メインの (対話型) シェルで行う場合は、設定を元に戻す必要がある場合がありますshopt。これは で行うことができますshopt -u globstar dotglob

注: ファイルが多すぎると、コマンド ラインの長さに制限があるために失敗する可能性がありますが、かなり長いです。

答え2

Ubuntu 14.04.3でも同じ問題が発生しました。解決策は、リポジトリのパッケージを使用せず、最新のソースをインストールすることです。http://mattmahoney.net/dc/zpaq.html

パッケージをダウンロードすると .zip 形式になるため、unzip を使用して解凍する必要があります。そこから、次の操作を実行します。

make
sudo make install

今やっている

zpaq a *archive* */dir*

ディレクトリとそのすべてのサブディレクトリおよびファイルが含まれます。

関連情報