バックアップサーバの設定
バックアップサーバの設定
まずは、バックアップサーバからWebサーバへパスフレーズ/パスワードなしでログインできるようにするため、バックアップサーバで公開鍵の生成を行います。
# ssh-keygen -t dsa
そして生成した公開鍵をWebサーバにコピーします。
# scp /root/.ssh/id_dsa.pub BL20pG3Svr:/tmp/
次にWebサーバにログインして、/tmp/id_dsa.pubファイルをauthorized_keysへコピーします。
# ssh BL20pG3Svr
Password: xxxxxxxx
BL20pG3Svr> cat /tmp/id_dsa.pub >> /root/.ssh/authorized_keys
これによりバックアップサーバからsshコマンドやscpコマンドを実行して、Webサーバへログインしてもパスフレーズ/パスワードが要求されません。
それではWebサーバからログアウトしましょう。
BL20pG3Svr> exit
# hostname
DL585BackupSvr //バックアップサーバに戻ったことを確認
次に再度バックアップサーバにログインし、バックアップ対象のWebサーバのホスト名とIPアドレスの対応付けを設定します。
# vi /etc/hosts
16.175.156.113 BL20pG3Svr
設定したら、sshコマンドとscpコマンドを使ってバックアップを行うシェルスクリプトを作成してください。
# vi /usr/local/bin/rsyncbackup.sh
rsync -ave ssh BL20pG3Svr:/work /data1/
シェルスクリプトを作成したら実行権限を付加します。
# chmod +x /usr/local/bin/rsyncbackup.sh
最後に、シェルスクリプトをcronへ登録します。
# crontab -e
0 0 * * 6 /usr/local/bin/rsyncbackup.sh
以上の手順によって、毎週土曜日午前0時0分にrsyncbackup.shが実行され、バックアップサーバの/data1以下にWebサーバが提供するWebコンテンツが格納されたディレクトリ/work以下がバックアップされます。
次回のバックアップ時には、バックアップ対象とバックアップサーバ側での差のみがrsyncでバックアップされるため、バックアップ時間の短縮ができます。
rsyncコマンドにおけるディレクトリ指定の注意
rsyncコマンドのバックアップ対象のディレクトリ指定の際に「/」があるかないかで意味が異なりますので注意してください。
例えば以下の場合は、リモートのバックアップ対象の/rootディレクトリがローカルホストの/data/以下に保存されますので、ローカルホストに/data/root/として保存されます。
rsync -ave ssh BL20pG3Svr.jpt.cqpcorp.net:/root /data/
また次の場合は、リモートのバックアップ対象の/rootディレクトリより下がローカルホストの/data以下に保存されます。
rsync -ave ssh BL20pG3Svr:/root/ /data/
このようにディレクトリ名の後に「/」があるかないかで意味が異なりますので、注意が必要です。