Linux サーバーでのバックアップと復元に Rsnapshot を使用する方法
このページでは
- 前提条件
- rsnapshot のインストール
- SSH キー認証の構成
- RSスナップショットの構成
- rsnapshot バックアップを手動でテストする
- Cronによる自動バックアップ
- rsnapshot バックアップの復元
- 結論
rsnapshot は、Linux ベースのマシン用のバックアップ ユーティリティです。これはほとんどの Linux ディストリビューションで利用でき、パッケージ マネージャーを通じて簡単にインストールできます。 rsnapshot は依存関係のない Perl で書かれており、ローカルおよびリモートのバックアップもサポートしています。
rsnapshot を使用すると、ローカル ディレクトリをバックアップできます。リモート バックアップに関しては、rsnapshot は「ssh」と「rsync」を利用します。
このチュートリアルでは、Linux サーバー上で Rsnapshot を使用してバックアップと復元を行う方法を学習します。ローカル バックアップとリモート バックアップ用に rsnapshot を設定します。 rsnapshot と cron を使用して自動バックアップを設定する方法も学習します。
前提条件
このガイドを完了するには、次のものが揃っていることを確認してください。
- Debian、Ubuntu、CentOS、または任意のディストリビューションなどの Linux サーバー
- 管理者権限を持つ非 root ユーザー
- リモートバックアップをテストするためのオプションの追加サーバー
rsnapshot のインストール
rsnapshot は、ほとんどの Linux ディストリビューションで利用できるバックアップ ユーティリティです。それぞれのパッケージ マネージャーを通じてインストールできます。このセクションでは、Debian サーバーに rsnapshot をインストールします。したがって、別のディストリビューションを使用している場合は、現在のパッケージ マネージャーを使用してインストールしてください。
まず、次のコマンドを使用してパッケージのインデックスを更新します。この例では Debian を使用しますが、Ubuntu、Linux Mint などの Debian ベースのディストリビューションを使用できます。
sudo apt update
更新したら、以下のコマンドを実行して「rsnapshot」パッケージをインストールします。 「Y」と入力してインストールを確認します。
sudo apt install rsnapshot
インストールが完了したら、「rsnapshot」バイナリの場所とそのバージョンを確認します。
which rsnapshot
rsnapshot --version
以下に示すように、Rsnapshot 1.4 は「/usr/bin/rsnapshot」にインストールされています。
SSH キー認証の構成
リモート バックアップを実行する場合は、rsnapshot サーバーが SSH キー認証を使用してターゲット サーバーにログインできることを確認する必要があります。したがって、リモート バックアップには次のものが必要です。
- ターゲットサーバーへのログインに使用されるユーザー
- SSHキーベースの認証が有効になっています
このセクションでは、rsnapshot サーバー上で SSH キーを生成します。次に、ユーザー「alice」を使用して、SSH 公開キーを「192.168.10.41」のターゲット サーバーにコピーします。
「rsnapshot」サーバーで、以下の「ssh-keygen」コマンドを使用して SSH 公開キーと秘密キーを生成します。ロケーションキーとパスワードの入力を求められたら、「ENTER」を押します。
ssh-keygen -t ed25519
次に、以下の「ssh-copy-id」コマンドを実行して、SSH 公開キーをターゲット サーバーにアップロードします。この例では、キーベースの SSH 認証とユーザー 'alice を使用して、サーバー '192.168.10.41' からリモート バックアップを実行します。
ssh-copy-id [email
プロンプトが表示されたら、パスワードを入力します。
SSH 公開キーがアップロードされたら、Rsnapshot をセットアップする準備が整います。
RSスナップショットの構成
このセクションでは、ローカルとリモートの両方のバックアップ用に rsnapshot を構成します。デフォルト設定「/etc/rsnapshot.conf」を変更し、デフォルトのバックアップ ディレクトリを設定し、SSH および Rsync との統合を有効にし、間隔バックアップを設定してから、ローカル バックアップとリモート バックアップを設定します。
rsnapshot のデフォルト設定「/etc/rsnapshot.conf」をコピーし、「nano」または「vim」エディタでファイルを変更します。
sudo cp /etc/rsnapshot.conf /etc/rsnapshot.conf.orig
sudo nano /etc/rsnapshot.conf
デフォルトの「snapshot_root」を新しいディレクトリに変更します。このディレクトリはバックアップ データの保存に使用されます。
snapshot_root /data/backup/
SSH 経由の rsync によるリモート バックアップを有効にするには、「cmd_rsync」 および 「cmd_ssh」 オプションのコメントを解除します。
cmd_rsync /usr/bin/rsync
cmd_ssh /usr/bin/ssh
デフォルトのバックアップ レベルまたは間隔を次のように変更します。名前はオプションであり、必要に応じて変更できます。したがって、この例では、「daily 6」は「daily.0」から「daily.5」という名前のバックアップ ディレクトリを作成します。
注: エラーがスローされるため、スペースの代わりに TAB を使用してください。
retain daily 6
retain weekly 7
retain monthly 4
ファイルへの rsnapshot ログを有効にするには、「logfile」オプションのコメントを解除します。
logfile /var/log/rsnapshot.log
カスタム SSH ポートを使用してリモート サーバーを実行している場合は、「ssh_args」オプションのコメントを解除してポートを変更します。
ssh_args -p 22
次に、ローカル バックアップの場合、次のような構成を使用します。この例では、ローカル ディレクトリ '/home/arvdl' を 'local' にバックアップします。宛先パスは相対パスである必要があり、これは「/srv/backup/name-interval/local」と等しくなります。
backup /home/arvdl/ local
SSH および rsync 経由のリモート バックアップの場合は、次のような構成を使用します。この例では、リモート サーバー '192.168.10.41 からディレクトリ '/etc' と '/var/www' をバックアップします。 SSH ユーザー「alice」を使用して「server1」相対パス ディレクトリに移動します。
backup [email :/etc/ server1
backup [email :/var/www server1
完了したら、ファイルを保存して終了します。
rsnapshot を構成したら、次のように rsnapshot 構成を確認してテストします。適切な設定を行っている場合は、「構文 OK」という出力が表示されます。
rsnapshot configtest
rsnapshot バックアップを手動でテストする
rsnapshot の構成が完了したので、手動でバックアップを実行し、バックアップ ディレクトリと rsnapshot ログ ファイルを確認して、rsnapshot を使用してバックアップを検証およびテストしましょう。
バックアップを手動でテストするには、以下の「rsnapshot」コマンドを実行します。必ず「毎日」をバックアップ名に変更してください。
rsnapshot daily
プロセスが完了したら、次のコマンドを使用してバックアップ ディレクトリ '/srv/backup' を確認します。ローカル サーバーとリモート サーバーからのバックアップ ファイルが含まれる新しいバックアップ ディレクトリ 'daily.0' が表示されます。
ls /srv/backup/
次に、以下のコマンドを実行して、rsnapshot によるディスク使用量を確認します。
rsnapshot du
以下の出力では、rsnapshot バックアップの合計ディスク使用量が 5MB であることがわかります。
最後に、バックアップ ログ ファイル「/var/log/rsnapshot.log」をチェックして、バックアップ プロセスを確認します。
cat /var/log/rsnapshot.log
以下は、バックアップが成功したことを示していますが、「/etc/shadow」ファイルのバックアップ時に権限が拒否されたなどの警告がいくつかありました。
Cronによる自動バックアップ
自動バックアップの場合、rsnapshot を cron と統合できます。たとえば、自動バックアップの cron を「毎日」、「毎週」、「毎月」として設定します。
ファイル「/etc/cron.d/rsnapshot」を「nano」エディタで開きます。このファイルは rsnapshot によって生成された例です。
sudo nano /etc/cron.d/rsnapshot
rsnapshot による自動バックアップには以下の設定を入力します。この例では、「毎日」バックアップが毎日実行されるほか、「毎週」と「毎月」バックアップもそれぞれの時間内で実行されます。
0 0 * * * root rsnapshot daily
0 0 * * 0 root rsnapshot weekly
0 0 1 * * root rsnapshot monthly
ファイルを保存してエディタを終了します。
これにより、自動バックアップが cron 経由で実行されます。
rsnapshot バックアップの復元
rsnapshot バックアップを復元するには、バックアップ ディレクトリから宛先にデータをコピーするだけです。この例では、バックアップ ディレクトリ「/srv/backup」からデータをコピーできます。
結論
おめでとう! rsnapshot をインストールし、ローカルおよびリモート バックアップ用に rsnapshot を設定するためのチュートリアルを完了し、いくつかの基本的な「rsnapshot」コマンドを学習しました。最後に、rsnapshot と cron を使用して自動バックアップを設定する方法も学習しました。