rsync はリモートホストにファイルを転送するためのプログラムです。
rsync は高速かつ効率的にファイルを転送することができ、Web サーバーや FTP サーバーのコンテンツをコピーしてミラーサーバーを構築するために利用されることもあります。
以下ではメインのサーバーがダウンした場合に代わりに運用できるようにバックアップマシンを 1 台用意して、メインサーバーとのシステム同期を行います。
また rsync の通信を暗号化し、同期処理を完全自動化(パスワードの応答を省略)するために SSH の RSA 認証を使用します。
公開鍵、秘密鍵ペアの作成
RSA 認証を使ってサーバーに接続するための公開鍵と秘密鍵のペアを作成します。
この作業はメインサーバー(バックアップ元のマシン)で実行します。
# /usr/local/openssh/bin/ssh-keygen -t rsa -N ""
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 何も入力せずに Enter キーを押す
Created directory ‘/root/.ssh’.
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:
24:f0:76:bd:d5:66:da:59:29:4b:a5:50:1a:e6:fa:7b root@server.honana.com
Enter file in which to save the key (/root/.ssh/id_rsa): 何も入力せずに Enter キーを押す
Created directory ‘/root/.ssh’.
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:
24:f0:76:bd:d5:66:da:59:29:4b:a5:50:1a:e6:fa:7b root@server.honana.com
scp を使った公開鍵の転送
バックアップ用サーバーで公開鍵を格納するためのディレクトリを作成します。
# mkdir /root/.ssh
メインサーバーからバックアップ用サーバーにで公開鍵を転送します。
この作業はメインサーバー上で実行します。
# /usr/local/openssh/bin/scp /root/.ssh/id_rsa.pub 192.168.0.9:/root/.ssh/authorized_keys
The authenticity of host ‘192.168.0.9 (192.168.0.9)’ can’t be established.
RSA key fingerprint is 34:c3:b2:0b:e0:f0:52:a6:c9:af:20:8d:18:e5:23:f5.
Are you sure you want to continue connecting (yes/no)? yesyes と入力する
Warning: Permanently added ‘192.168.0.9’ (RSA) to the list of known hosts.
root@192.168.0.9’s password: **********パスワードを入力する
id_rsa.pub                                    100%  404     0.4KB/s   00:00
RSA key fingerprint is 34:c3:b2:0b:e0:f0:52:a6:c9:af:20:8d:18:e5:23:f5.
Are you sure you want to continue connecting (yes/no)? yesyes と入力する
Warning: Permanently added ‘192.168.0.9’ (RSA) to the list of known hosts.
root@192.168.0.9’s password: **********パスワードを入力する
id_rsa.pub                                    100%  404     0.4KB/s   00:00
バックアップ用サーバーへのログイン
以下のように実行してパスワードの入力なしにメインサーバーからバックアップ用サーバーにログインできることを確認します。
# slogin 192.168.0.9
バックアップの実行
以下の例では rsync を使って Apache の設定ファイルのバックアップ行います。
# rsync -e /usr/local/openssh/bin/ssh /usr/local/httpd/conf/httpd.conf 192.168.0.9:/usr/local/httpd/conf/