「rsync」と「SSH」を使ってデータのバックアップ

  • 投稿日:
  • by

 サーバーのデータはやはり定期的にバックアップしないと、危険です。いつディスクがクラッシュしたりなどで復旧が不可能な場合、データも一緒に消失してしまっては目も当てられません。
 そこでデータのバックアップですが、同じ物理ディスクにバックアップしていると、ディスククラッシュの際に意味を持ちません。なので、物理的に別ディスク(別なストレージ)にバックアップするか、別のマシンにバックアップを取るか、の選択肢になるかと思います。

 このエントリーでは、「rsync」を使って別なマシンへデータをバックアップする方法をご紹介します。またセキュリティーも考慮し、「SSH」も併用することにします。


■rsyncとは

 rsyncは,rcpコマンドと同様にリモート環境でファイルのコピーを行うためのコマンドです.rsyncの特徴は更新の必要のあるファイルだけをコピーしたり,送信データを圧縮して更新にかかる時間を短縮することができることです.また,rcpよりもセキュリティ面でも優れており,SSLを使うことで通信を暗号化したり,SSHのRSA認証を使うことでIDとパスワードを使わずに安全な認証を行うことができます.


rsyncとsshのインストールについては、上記参考URLや文末の参考URLにもたくさん有益な情報がありますので、そちらを参考にしてください。ですので、rsyncとsshはインストール済みという前提で話を進めます。

ここで、バックアップ元のマシンのホスト名を「sv1」、バックアップ先を「sv2」とします。

まず、バックアップ元とバックアップ先の両方で、「ssh-keygen」コマンドを使って、RSA認証の秘密鍵と公開鍵を作成します。

バックアップ元で作業

# su
# cd
# ssh-keygen -t rsa1

公開鍵は「identity.pub」というファイルで作成されるので、「authorized_keys」というファイル名でコピーしておきます。

# cp /root/.ssh/identity.pub /root/.ssh/authorized_keys


次にバックアップ先のsshdの設定ファイルを編集します。

「sshd_confing」というファイルがあるはずですので、そのファイルを編集します。

今回の目標としては、『「rsync」を使ってパスワードを入力せず,RSA認証だけでデータをバックアップする』ということにしているので、下記のように変更します。

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
#RhostsRSAAuthentication no
#PasswordAuthentication yes


次に、先ほどバックアップ元で作成した公開鍵「identity.pub」をバックアップ先にコピーします。
これはftpやscpコマンドなどでコピーします。

バックアップ元での作業

# scp /root/.ssh/identity.pub sv2:/root/.ssh/identity.pub
password:

そして、バックアップ先にて、「authorized_keys」ファイルにバックアップ元の公開鍵を追加します。


バックアップ先での作業

# cat /root/.ssh/client.pub >> /root/.ssh/authorized_keys


そして、バックアップ先の「sshd」を再起動します。


これで設定は完了です。

バックアップ元からバックアップ先のマシンに「sshにてパスワードなしにログインできるか」を確認します。


[root@sv1 ~]# ssh root@sv2
Last login: Mon Dec 25 23:17:42 2006 from sv1
[root@sv2 ~]#

これでバックアップ元から、パスワードなしでsshログインできることが確認できました。


それでは肝心の「rsync」でのバックアップコマンドですが、至ってシンプルです。

rsync -av /home/blogs/ sv2:/home/blogs/

このコマンドにより、sv1の/home/blogs/以下がすべてバックアップ先であるsv2の/home/blogs/以下にバックアップされます。

など、バックアップ元で削除されたファイルをバックアップ先でも削除したい場合は、「--delete」オプションを追加します。

rsync -av --delete /home/blogs/ sv2:/home/blogs/


rsyncのいいところは、初回だけはすべてをバックアップしますが、2回目以降は差分だけですのでどんどん高速になっていきます。

このコマンドが使えるようになったので、当環境では、cronを使って定期的にサブマシンにデータをバックアップしています。


他にも参考にしたサイトがありますので、こちらも参考にされると、よりわかりやすいかと思います(^^;)



Unixバックアップ&リカバリ
W. Curtis Preston W・カーティス・プレストン 田和 勝 長原 宏治
オライリー・ジャパン
売り上げランキング: 9391
おすすめ度の平均: 5.0
5 真の技術
5 システム管理者に必須の書籍