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


経験によれば、システムのバックアップについて偏執的になりすぎることは決してありません。貴重なデータの保護と保存に関しては、さらに一歩進んで、必要に応じてバックアップに頼ることができるようにするのが最善です。

今日でも、お金を節約するために独自のツールを使用してバックアップ戦略を立て、それを使用して追加のストレージを購入したり、より大きなVPSを取得したりする場合です。

[あなたも好きかもしれません:Linuxシステムのための25の優れたバックアップユーティリティ]

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

そうは言っても、始めましょう。

LinuxへのDuplicityBackupToolのインストール

RHELベースのディストリビューションに重複をインストールするには、最初に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

理論的には、ファイルサーバーに接続するための多くの方法がサポートされていますが、これまで実際にテストされたのはftp、HSI、WebDAV、およびAmazonS3のみです。

インストールが完了すると、データのバックアップと復元の両方に、さまざまなシナリオで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 protected]
# ssh-copy-id -p XXXXX [email protected]  

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

# ssh [email protected]

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

# gpg2 --full-gen-key

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

  • キーの種類
  • キーサイズ
  • キーの有効期間
  • パスフレーズ

キーの作成に必要なエントロピーを作成するには、別のターミナルウィンドウからサーバーにログオンし、いくつかのタスクを実行するか、いくつかのコマンドを実行してエントロピーを生成します(そうでない場合は、終了するプロセス)。

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

# gpg --list-keys

上記の黄色で強調表示されている文字列は公開鍵IDと呼ばれ、ファイルを暗号化するために要求された引数です。

重複のあるLinuxバックアップの作成

簡単に始めるために、/ var/log/anacondaと/var/ log/saを除いて、/ var/logディレクトリのみをバックアップしましょう。

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

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

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

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

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

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

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

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

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

# rm -f /var/log/cron

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

# PASSPHRASE="YourPassphraseHere" duplicity --file-to-restore filename sftp://[email protected]//backups/rhel8 /where/to/restore/filename

どこ、

  • filenameは、バックアップされるディレクトリへの相対パスを含む、抽出されるファイルです。
  • /where/to/restoreは、ファイルを復元するローカルシステム内のディレクトリです。

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

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

cronログを目的の宛先に復元する必要があります。

同様に、/ var/logからディレクトリを削除し、バックアップを使用して復元してください。

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

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

Duplicityのその他の機能

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

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

6か月より古いバックアップを削除します。

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

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

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

最後のコマンドでは、時間間隔(-tで指定)の使用例を見ることができます。それぞれが数字とそれに続く文字s、m、h、D、の1つで構成される一連のペアです。 W、M、またはY(それぞれ秒、分、時間、日、週、月、または年を示します)。

概要

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

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

ご不明な点やご意見がございましたら、お気軽にお問い合わせください。