私は古いシステムを改善するために管理しているサーバーのバックアップシステムをセットアップしようとしています。私はズパック古いシステムを使用していても良好な圧縮が提供され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*
ディレクトリとそのすべてのサブディレクトリおよびファイルが含まれます。