ステータス:非推奨

この記事では、サポートされなくなったバージョンのUbuntuについて説明します。 現在Ubuntu12.04を実行しているサーバーを運用している場合は、サポートされているバージョンのUbuntuにアップグレードまたは移行することを強くお勧めします。

理由: Ubuntu 12.04は2017年4月28日に保守終了(EOL)に達し、セキュリティパッチまたはアップデートを受信しなくなりました。 このガイドはもう維持されていません。

代わりに参照してください:
このガイドは参考として役立つかもしれませんが、他のUbuntuリリースでは機能しない可能性があります。 可能な場合は、使用しているUbuntuのバージョン用に作成されたガイドを使用することを強くお勧めします。 ページ上部の検索機能を使用して、より新しいバージョンを見つけることができます。

ハイライトの意味

このチュートリアルでは、ユーザーが入力またはカスタマイズする必要のある行がハイライトになります。 残りはほとんどコピーアンドパスタブルである必要があります。

序章

このチュートリアルでは、rsyncに基づくリモートバックアップソリューションであるrsnapshotをセットアップして使用する方法について説明します。 Rsnapshotは、rsyncの機能を利用して、スケジュールされた増分バックアップを作成します。

この手順では、ローカルバックアップを作成する方法と、別のクラウドサーバーまたは自宅のコンピューターをバックアップスペースとして使用する方法を示します。 このチュートリアルの手順を完了するには、rootとしてログインするか、すべてのコマンドの前に「sudo」を付ける必要があります。

ステップ1:RsnapshotのインストールとSSHキーの構成

コンテンツをバックアップするための最初のステップは、バックアップサーバーとして使用するマシンにrsnapshotをインストールすることです。

RsnapshotはUbuntuのデフォルトのリポジトリにあるため、apt-getを使用してインストールできます。

sudo apt-get install rsnapshot

別のクラウドサーバーをバックアップするには、バックアップサーバーがSSH経由でバックアップするクラウドサーバーに接続できる必要があります。 rsnapshotがパスワードなしでSSHを使用できるようにしたいので、認証するためにSSHキーを生成する必要があります。

公開鍵と秘密鍵を生成するには、バックアップサーバーで次のコマンドを実行します。

sudo ssh-keygen -t rsa

これらのコンピューターが介入なしで相互に接続できるようにするため、このキーのパスフレーズは必要ありません。 すべてのプロンプトで「ENTER」を押して、デフォルトを受け入れます。

user@backupserver:~#: sudo ssh-keygen –t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
…
The key's randomart image is:
…

これで、バックアップサーバーから他のサーバーにサインインできるようにする公開鍵と秘密鍵のペアができました。 公開鍵をバックアップするマシンに転送して、アクセスが許可されていることを知らせる必要があります。

sudo ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected] 

必ず「example.com」をバックアップするサーバーのIPアドレスまたはドメイン名に変更してください。

そのコマンドが実行されたら、パスワードなしでバックアップサーバーからサーバーにログインできることを確認する必要があります。

sudo ssh [email protected] 

正しく接続できることを確認したら、終了して、バックアップサーバーで再び作業できるようにします。

exit

ステップ2:Rsnapshotの構成

rsnapshotをインストールした後、構成ファイルを編集する必要があります。

sudo nano /etc/rsnapshot.conf

rsnapshot構成ファイルを操作する際に留意すべきことの1つは、各ディレクトリーを正しく読み取るために末尾のスラッシュ(/)が必要であることです。

最初に決定する必要があるのは、バックアップをどこに保存するかです。 バックアップの場所としてディレクトリ「/backup」を使用します。 次の変数を検索して編集し、バックアップの場所を設定します。

snapshot_root			 /backup/ 

このディレクトリがまだ存在しない場合、rsnapshotは実行時にディレクトリを作成します。

また、cmd_ssh行のコメントを解除して、リモートバックアップを可能にすることもできます。 rsnapshotがデータをバックアップサーバーに安全に転送できるように、次の行の前から「#」を削除します。

cmd_ssh			/usr/bin/ssh

正確なディスク使用状況レポートを有効にするには、cmd_du行の前から「#」を削除します。

cmd_du				/usr/bin/du

次に、保持したい古いバックアップの数を検討する必要があります。 rsnapshotは増分バックアップを使用するため、古いバックアップを削除する前にしばらく保持する余裕があります。

これらは、構成の「バックアップ間隔」セクションで設定します。 rsnapshotに、各種類の間隔の特定の数のバックアップを保持するように指示します。 このガイドでは、デフォルト設定が適切ですが、「月次」間隔のコメントを解除して、より長期的なバックアップを実施できるようにします。 このセクションを次のように編集します。

#########################################
#           BACKUP INTERVALS            #
# Must be unique and in ascending order #
# i.e. hourly, daily, weekly, etc.      #
#########################################

retain		hourly  6
retain		daily   7
retain		weekly  4
retain		monthly 3

編集が必要になる可能性のあるもう1つの項目は、ssh_args変数です。 SSHチュートリアルで提案されているように、バックアップするクラウドサーバーのポート番号を変更した場合は、ssh_argsセクションのコメントを解除し、ここで同じ設定を使用することをお勧めします。

ssh_args			-p 25000

最後に、何をバックアップするかを決定する必要があります。 同じマシンにローカルでバックアップする場合、これは、保存するディレクトリを指定し、前に設定したsnapshot_rootのサブディレクトリとなる「localhost/」を続けるのと同じくらい簡単です。

ホームディレクトリとetcディレクトリのバックアップを選択します。

backup		/home/		localhost/
backup		/etc/		localhost/

リモートサーバーまたは別のドロップレット(クラウドサーバー)をバックアップする場合は、ここでも構成できます。 サーバーがどこにあり、どのディレクトリをバックアップしたいかをrsnapshotに伝える必要があります。

backup		 [email protected]:/home/ 		remote-droplet/

rsnapshotはプルベースです。 つまり、追加の回避策と構成がないと、バックアップをリモートサーバーにプッシュできません。 むしろ、SSHキーを使用すると、rsnapshotがインストールされたサーバーにプルされます。

「example.com」の部分を、バックアップするサーバーのIPアドレスまたはドメイン名に変更することをお勧めします。 サーバー名/IPアドレスの後に、コロン「:」の後にバックアップするディレクトリパスを続ける必要があります。 「リモートドロップレット」部分は、バックアップが保存されるサブディレクトリです。 好きな名前を付けることができます。

これで、rsnapshotの初期構成が完了しました。 続行する前に、/ etc/rsnapshot.confファイルを保存してください。 nanoを使用して編集している場合は、「Ctrl-X」を押して終了し、プロンプトで「はい」と答えて変更を保存します。

構成のテスト

自動化を設定する前に、すべてが期待どおりに機能することをテストする必要があります。 構成の構文が正しいことをテストするには、次のコマンドを実行します。

sudo rsnapshot configtest

ファイルにエラーがない場合は、「構文OK」メッセージが表示されます。 このメッセージが表示されなかった場合は、戻って、メッセージに記載されている間違いを修正する必要があります。

次に、スナップショットの1つをドライランして、期待どおりの結果が得られていることを確認します。 時間単位のバックアップは、他の間隔が構築される基本的なスナップショットタイプであるため、「時間単位」パラメーターを使用します。 つまり、「毎日」または「毎週」を選択した場合よりも、「毎時」からより多くの情報を取得できるということです。

sudo rsnapshot -t hourly

生成された出力が正しいように見える場合は、「-t」オプションを削除して、セットアップを初めて試すことができます。

sudo rsnapshot hourly

これにより、構成ファイルで設定したバックアップが実行されます。 このチュートリアルでは、rsnapshotが/ backupディレクトリを作成し、その下にファイルを整理するディレクトリ構造を作成しました。

プロセスの自動化

rsnapshotが正しく機能している場合、あとは、特定の間隔で実行するようにスケジュールするだけです。 これを実現するために、Linuxスケジューラであるcronを使用します。

幸い、rsnapshotには、好みに合わせて編集できるデフォルトのcronファイルが含まれています。 このファイルを再びnanoで編集します。

sudo nano /etc/cron.d/rsnapshot

スケジュールは現在コメントアウトされています。 これらの値をアクティブにするために、スケジューリングセクションの先頭から「#」文字を削除します。

# This is a sample cron file for rsnapshot.
# The values used correspond to the examples in /etc/rsnapshot.conf.
# There you can also set the backup points and many other things.
#
# To activate this cron file you have to uncomment the lines below.
# Feel free to adapt it to your needs.

0 */4         * * *           root    /usr/bin/rsnapshot hourly
30 3          * * *           root    /usr/bin/rsnapshot daily
0  3          * * 1           root    /usr/bin/rsnapshot weekly
30 2          1 * *           root    /usr/bin/rsnapshot monthly

これらの設定は、4時間ごとに「/ backup /」ディレクトリ内の「hourly」ディレクトリにスナップショットを追加し、毎日午前3時30分に毎日スナップショットを追加し、毎週月曜日の午前3時にスナップショットを追加します。毎月1日の午前2時30分のスナップショット。

最初にバックアップをずらして、より大きなバックアップ間隔を実行することが重要です。 これは、このチュートリアルで行ったように、最初に月次バックアップを実行し、そこから順番に短い間隔に進むことを意味します。 これは、プログラムが同時に複数のバックアップを実行しようとして巻き込まれ、問題を引き起こす可能性がないようにするために必要です。

ジャスティン・エリングウッド