Borg backup

提供: ArchWiki
ナビゲーションに移動 検索に移動

関連記事

BorgBackup (略して Borg) は重複排除バックアッププログラムです。オプションで、圧縮と認証済み暗号化をサポートします。

Borg の主な目標は、データをバックアップするための効率的かつ安全な方法を提供することです。使用されるデータ重複排除技術により、変更のみが保存されるため、Borg は毎日のバックアップに適しています。認証された暗号化技術により、完全に信頼されていないターゲットへのバックアップにも適しています。

インストール

borg パッケージを インストール して下さい、 開発版は borg-gitAUR で利用できます。

追加機能については、次のパッケージをインストールします。

python-llfuse
アーカイブのマウント用
openssh
リモートホストへの接続用
borgmatic
ターミナルコマンドの代わりに YAML ファイルを介して Borg を制御する一連のラッパースクリプトのセット (borgmatic, (ウェブサイト)
borgctlAUR
bash スクリプトを使用しない borgbackup - borgmatic に似ていますが、機能セットがわずかに異なります (borgctl)
pika-backupAUR
Borg 用の libadwaita/GTK4 ベースの GUI
vortaAUR
Borg 用の Qt ベースの GUI
borgtui-gitAUR
スケジュールバックアップを行うための TUI と CLI

データがソースされているマシンとは別のマシンにバックアップしたい場合は、この別のマシン ("サーバー") にも borg がインストールされている必要があります。バックアップの作成と管理を容易にするために、サーバー管理者は次の機能を利用できます。

borgwarehouseAUR
https://www.borgbase.com/ が提供する有料サービス、Borg WebUI の中央リポジトリサーバー。

ドキュメント

公式 ドキュメントサンプルクイックスタートガイド があります、ローカルドキュメントは borg(1)apropos borg にあります。

さらに、一般的に次のいずれかのコマンドを使用してガイダンスを見つけることができます。

$ borg help

または特定のコマンドの場合:

$ borg help command

使用方法

Borg の背後にある主な概念は 重複排除 です。従来の TAR アーカイブのようにファイルを蓄積するのではなく、重複排除ではファイルの名前に関係なく、一度だけコピーされるようにファイルをハッシュすることで、ファイルのアイデンティティを検証します。これは、圧縮を行わなくても、増分バックアップを繰り返すために必要なスペースが最小限であることを意味します。

ファイル圧縮はオプションで、複数のアルゴリズム (zstd を推奨) と圧縮率をサポートします。

Borg で作成されたアーカイブは、個々のファイルを参照および復元するために FUSE ファイルシステムとしてマウントできます。

アーカイブは、SSHFSNFSSamba、または同様のマウントソリューションを使用して、ローカルまたはリモートシステム上に作成できます。SSH 経由の転送はサポートされていますが、リモートホストで Borg が利用可能である必要があります。

リポジトリの作成

Borg リポジトリは、暗号化したり、改ざんを明示したりすることもできます。モードとオプションの詳細については、リポジトリのセットアップに関する公式ドキュメント を参照してください。

暗号化または認証なしで Borg リポジトリを作成するには:

$ borg init --encryption=none /path/to/repo

アーカイブの作成

borg create コマンドを使用して、個々のアーカイブ インスタンスをリポジトリ内に作成できます。各アーカイブには一意の名前を付ける必要があります。Borg には プレースホルダーのリスト が含まれており、日付、時刻、ユーザー名、ホスト名などの文字列を簡単に追加できます。

ソースマシンのホスト名と現在の日付を使用して archivable-dir ディレクトリのアーカイブを作成するには:

$ borg create /path/to/repo::{hostname}-{now:%Y-%m-%d} archivable-dir

Borg は、広範な包含および除外オプションをサポートしています。.py ファイルをアーカイブから除外するには:

$ borg create ... --exclude '*.pyc' /path/to/repo::archive-name

詳細については、borg create ドキュメントページ を参照してください。

アーカイブのプルーニング

古いアーカイブの削除は自動的には実行されませんが、borg prune コマンドを使用して手動で実行できます。保持するアーカイブの数を指定する必要があり、アーカイブが作成された時間によって制限できます。

過去7日分のアーカイブ、最新の4つの週次アーカイブ、および最新の3つの月次アーカイブのみを保持するには、次のようにします。

$ borg prune --keep-daily=7 --keep-weekly=4 --keep-monthly=3 /path/to/repo

アーカイブの作成時期に関係なく、最新の10個のアーカイブのみを保持するには:

$ borg prune --keep-last=10 /path/to/repo

含まれるアーカイブの数に関係なく、過去30日間のすべてのアーカイブを保持するには:

$ borg prune --keep-within=30d /path/to/repo
ノート: プルーニングはアーカイブを削除しますが、実際にはリポジトリのスペースを解放しません。スペースを解放するには、リポジトリで borg compact コマンドを使用します。
警告: プルーニングは、--prefix または --glob-archives フラグで制限されていない限り、リポジトリ内の すべて のアーカイブに対して実行されます。

詳細については、borg prune ドキュメントページ を参照してください。

アーカイブからの復元

アーカイブから復元するには:

$ borg extract /path/to/repo::archive-name path/to/restore
ノート: Borg は、現在の作業ディレクトリからの相対的な フルパス を抽出します。つまり、アーカイブからユーザのホームディレクトリにあるパス /home/archuser/path/to/restore をリストアすると、フルリストアのパスは /home/archuser/home/archuser/path/to/restore になります。

または、インタラクティブな復元のためにリポジトリをマウントすることもできます。

$ borg mount /path/to/repo::archive-name

ヒントとテクニック

キャッシュの除外

アーカイブのサイズは、キャッシュディレクトリを除外することで削減できます。キャッシュディレクトリ アーカイブ標準 に準拠するディレクトリは、アーカイブ作成コマンドに --exclude-caches を追加することで自動的に除外できます。

$ borg create ... --exclude-caches /path/to/repo::archive-name

影響を受けるファイルの一覧表示

Borg の多くの操作は、影響を受けるファイルまたはアーカイブを一覧表示する --list フラグをサポートしています。--dry-run と組み合わせると、ユーザーは特定のコマンドの効果を確認できます。

参照