Borg backup
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(1) と apropos borg
にあります。
さらに、一般的に次のいずれかのコマンドを使用してガイダンスを見つけることができます。
$ borg help
または特定のコマンドの場合:
$ borg help command
使用方法
Borg の背後にある主な概念は 重複排除 です。従来の TAR アーカイブのようにファイルを蓄積するのではなく、重複排除ではファイルの名前に関係なく、一度だけコピーされるようにファイルをハッシュすることで、ファイルのアイデンティティを検証します。これは、圧縮を行わなくても、増分バックアップを繰り返すために必要なスペースが最小限であることを意味します。
ファイル圧縮はオプションで、複数のアルゴリズム (zstd を推奨) と圧縮率をサポートします。
Borg で作成されたアーカイブは、個々のファイルを参照および復元するために FUSE ファイルシステムとしてマウントできます。
アーカイブは、SSHFS、NFS、Samba、または同様のマウントソリューションを使用して、ローカルまたはリモートシステム上に作成できます。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 prune
ドキュメントページ を参照してください。
アーカイブからの復元
アーカイブから復元するには:
$ borg extract /path/to/repo::archive-name 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
と組み合わせると、ユーザーは特定のコマンドの効果を確認できます。