ウェブサイト検索

Duplicity – Linux で暗号化された増分バックアップを作成する


経験上、システムのバックアップについてあまり神経質になることはありません。貴重なデータの保護と保存に関しては、さらに一歩を踏み出し、必要な場合にバックアップを確実に利用できるようにすることが最善です。

現在でも、一部のクラウド プロバイダーやホスティング プロバイダーが比較的低コストで VPS の自動バックアップを提供していますが、お金を節約するために独自のツールを使用して独自のバックアップ戦略を作成し、そのお金を追加のストレージやストレージの購入に使用することをお勧めします。より大きな VPS を入手してください。

興味深いですね?この記事では、Duplicityというツールを使用してファイルとディレクトリをバックアップおよび暗号化する方法を説明します。さらに、このタスクに増分バックアップを使用すると、スペースを節約できます。

ということで、始めましょう。

Linux への Duplicity バックアップ ツールのインストール

RHEL ベースのディストリビューションに Duplicity をインストールするには、まず EPEL リポジトリを有効にする必要があります (Fedora 自体を使用している場合は、この手順を省略できます)。

yum update 
yum install epel-release
OR
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

それから走って、

yum install duplicity

Debian および派生製品の場合:

sudo apt update 
sudo apt install duplicity

理論的には、ファイル サーバーに接続するための多くの方法がサポートされていますが、これまで実際にテストされているのは ssh/scp/sftp、ローカル ファイル アクセス、rsync、ftp、HSI、WebDAV、Amazon S3 だけです。

インストールが完了したら、さまざまなシナリオでデータのバックアップと復元の両方にsftp のみを使用します。

私たちのテスト環境は、RHEL 8 ボックス (バックアップ対象) とDebian 11 マシン (バックアップ サーバー) で構成されています。

リモートサーバーにパスワードなしでログインするための SSH キーの作成

まず、RHEL ボックスで SSH キーを作成し、 それをDebian バックアップ サーバーに転送します。

別のポートで SSH を実行している場合、以下のコマンドは、sshd デーモンが Debian サーバーのポート XXXXX でリッスンしていると想定します。 AAA.BBB.CCC.DDD をリモート サーバーの実際の IP に置き換えます。

ssh-keygen -t rsa
ssh-copy-id [email 
ssh-copy-id -p XXXXX [email   

次に、パスワードを使用せずにバックアップ サーバーに接続できることを確認する必要があります。

ssh [email 

ここで、データの暗号化と復号化に使用されるGPG キーを作成する必要があります。

gpg2 --full-gen-key

次の内容を入力するように求められます。

  • 鍵の種類
  • キーのサイズ
  • キーの有効期間はどれくらいか
  • パスフレーズ

キーの作成に必要なエントロピーを作成するには、別のターミナル ウィンドウを介してサーバーにログオンし、いくつかのタスクを実行するか、エントロピーを生成するコマンドを実行します (そうしないと、この部分で長時間待機する必要があります)終了までのプロセス)。

キーが生成されたら、次のようにリストすることができます。

gpg --list-keys

上で黄色で強調表示されている文字列は公開キー ID として知られており、ファイルを暗号化するために要求される引数です。

Duplicity を使用した Linux バックアップの作成

まず簡単に、/var/log/anaconda/var/log/sa を除く、/var/log ディレクトリのみをバックアップしましょう。強い>。

これは最初のバックアップなので、完全なバックアップになります。後続の実行では、増分バックアップが作成されます (以下のコマンドで duplicity のすぐ隣にダッシュのない完全なオプションを追加しない限り)。

PASSPHRASE="tecmint" duplicity --encrypt-key 115B4BB13BC768B8B2704E5663C429C3DB8BAD3B --exclude /var/log/anaconda --exclude /var/log/sa /var/log scp://[email //backups/rhel8
OR
PASSPHRASE="YourPassphraseHere" duplicity --encrypt-key YourPublicKeyIdHere --exclude /var/log/anaconda --exclude /var/log/sa /var/log scp://root@RemoteServer:XXXXX//backups/rhel8

上記のコマンドの二重スラッシュを見逃さないようにしてください。 これらは、バックアップ ボックス内の /backups/rhel8 という名前のディレクトリへの絶対パスを示すために使用されます。バックアップ ファイルが保存される場所です。

YourPassphraseHereYourPublicKeyIdHere、および RemoteServer を、前に入力したパスフレーズ、GPG 公開キー ID、およびバックアップの IP またはホスト名に置き換えます。それぞれサーバー。

出力は次の画像のようになります。

上の画像は、 合計86.3 MB が宛先の3.22 MB にバックアップされたことを示しています。バックアップ サーバーに切り替えて、新しく作成したバックアップを確認してみましょう。

同じコマンドを 2 回実行すると、バックアップのサイズと時間が大幅に小さくなります。

Duplicity を使用した Linux バックアップの復元

ファイル、ディレクトリとその内容、またはバックアップ全体を正常に復元するには、宛先が存在してはなりません (重複により既存のファイルまたはディレクトリが上書きされることはありません)。明確にするために、CentOS ボックスの cron ログを削除しましょう。

rm -f /var/log/cron

リモート サーバーから単一のファイルを復元する構文は次のとおりです。

PASSPHRASE="YourPassphraseHere" duplicity --file-to-restore filename sftp://root@RemoteHost//backups/rhel8 /where/to/restore/filename

どこ、

  • ファイル名は抽出するファイルであり、バックアップされたディレクトリへの相対パスが指定されます。
  • /where/to/restore は、ファイルの復元先となるローカル システムのディレクトリです。

私たちの場合、リモート バックアップから cron メイン ログを復元するには、次のコマンドを実行する必要があります。

PASSPHRASE="YourPassphraseHere" duplicity --file-to-restore cron sftp://[email :XXXXX//backups/rhel8 /var/log/cron

cron ログは目的の場所に復元する必要があります。

同様に、 /var/log からディレクトリを削除し、バックアップを使用して復元しても構いません。

rm -rf /var/log/mail
PASSPHRASE="YourPassphraseHere" duplicity --file-to-restore mail sftp://[email :XXXXX//backups/rhel8 /var/log/mail

この例では、メール ディレクトリをそのすべての内容とともに元の場所に復元する必要があります。

Duplicity のその他の機能

次のコマンドを使用すると、いつでもアーカイブ ファイルのリストを表示できます。

duplicity list-current-files sftp://[email :XXXXX//backups/rhel8

6 か月以上前のバックアップを削除します。

duplicity remove-older-than 6M sftp://[email :XXXXX//backups/rhel8

ディレクトリ gacanepa 内の myfile を 2 日と 12 時間前の状態に復元します。

duplicity -t 2D12h --file-to-restore gacanepa/myfile sftp://[email :XXXXX//remotedir/backups /home/gacanepa/myfile

最後のコマンドでは、時間間隔 (-t で指定) の使用例を示します。一連のペアは、それぞれが数字の後に文字 < のいずれかで構成されます。strong>s、mhDWM または Y (それぞれ秒、分、時間、日、週、月、または年を示します)。

まとめ

この記事では、すぐにファイルとディレクトリの暗号化を提供するバックアップ ユーティリティである Duplicity の使用方法を説明しました。詳細なドキュメントと例については、Duplicity プロジェクトの Web サイトを参照することを強くお勧めします。

読みやすいように、PDF 形式で Duplicity のマニュアル ページを提供しています。これは完全なリファレンス ガイドでもあります。

ご質問やご意見がございましたら、お気軽にお知らせください。