Fedora10にミラーリングツール・その2!
Updated:
チョット前にうちのFedora10サーバを玄箱HG(Fedora10)に丸ごとミラーリングバックアップするようにしたんですが、ミラー元に変更があっても即ミラーリングされない(多分、設定がおかしいんだけど)んで、ちょっとやり方を変えてみることにしました。
常時丸ごとミラーリングとなると、サーバに負荷がかかるんで、ミラーリングツールを1日1回定期的に実行させるようにしてみようと思います。
導入手順
【前提条件】 ・実サーバ(ミラー元)はFedora10でWebサーバ、メールサーバ、FTPサーバ等が稼動中。 ・バックアップ側(ミラー先)は玄箱HGのFedora10。 ・実サーバ(ミラー元)のIPアドレスは 192.168.11.3 、バックアップ側(ミラー先)のIPアドレスは 192.168.11.2 。 ・実サーバ、バックアップ側どちらも「 Poderosa 」によるリモート接続による操作。 (実サーバはSSH2接続・鍵認証、バックアップ側はSSH2接続・パスワード認証)
実サーバ操作の場合は ・・・ [root@noah ~]# バックアップ側操作の場合は ・・・ [root@KURO-BOX ~]# で、判断してください。
1.公開鍵作成
今回は実サーバからバックアップ側への接続に鍵認証で行いたいので、実サーバ側で公開鍵を作成します。
[root@noah ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
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:
4b:fc:22:62:cc:c8:24:6c:e2:39:14:6f:23:03:6c:28 root@noah.mk-mode.com
The key's randomart image is:
+--[ RSA 2048]----+
・・・ 途中省略 ・・・
+-----------------+
[root@noah ~]#
2.rootログイン許可
バックアップ側で root のログインを許可する設定をする。
[root@KURO-BOX ~]# vi /etc/ssh/sshd_config
・・・ 途中省略 ・・・
#PermitRootLogin yes
↓
PermitRootLogin yes ← コメント化解除
・・・ 途中省略 ・・・
3.SSH再起動
バックアップ側のSSHを再起動する。
[root@KURO-BOX ~]# service sshd restart
Stopping sshd: [ OK ]
Starting sshd: [ OK ]
[root@KURO-BOX ~]#
4.公開鍵の転送
実サーバ側で作成した公開鍵をバックアップ側へ送る。
[root@noah ~]# scp /root/.ssh/id_rsa.pub 192.168.11.2:/root/
The authenticity of host '192.168.11.2 (192.168.11.2)' can't be established.
RSA key fingerprint is b0:45:45:aa:48:ec:9e:06:f3:75:dd:c4:f2:73:b2:fd.
Are you sure you want to continue connecting (yes/no)? yes ← yes応答
Warning: Permanently added '192.168.11.2' (RSA) to the list of known hosts. ← 何か警告が出てるけど、とりあえず無視
root@192.168.11.2's password: ← バックアップ側のrootパスワード
id_rsa.pub 100% 403 0.4KB/s 00:00
[root@noah ~]#
5.バックアップ側で公開鍵の登録
先程実サーバから転送した公開鍵をバックアップ側で登録する。
[root@KURO-BOX ~]# mkdir .ssh
[root@KURO-BOX ~]# cat id_rsa.pub >> /root/.ssh/authorized_keys2
[root@KURO-BOX ~]# chmod 600 .ssh/authorized_keys2
[root@KURO-BOX ~]#
6.SSH接続確認
メインマシンからバックアップ側へパスワード無しでSSH接続できるか確認する。
[root@noah ~]# ssh 192.168.11.2
Last login: Wed Mar 18 11:03:41 2009 from 192.168.11.12
[root@KURO-BOX ~]# ← できた!
7.バックアップ先ディレクトリ作成
バックアップ側にバックアップ用のディレクトリを作成する。
[root@KURO-BOX ~]# mkdir /tmp/mirror ← ミラー先ディレクトリ作成
[root@KURO-BOX ~]# chown nobody:nobody /tmp/mirror/ ← ミラー先ディレクトリ所有者をnobodyに変更
8.バックアップ
実サーバ側から rsync でバックアップしてみる。
[root@KURO-BOX ~]# exit ← 一旦実サーバに戻る
logout
Connection to 192.168.11.2 closed.
[root@noah ~]# rsync -avz -e ssh --delete / 192.168.11.2:/tmp/mirror
9.rsync実行スクリプトの作成
毎回、rsync を手動で実行するのは面倒なので、自動実行用のスクリプトを作成する。 ※今回は、/etc, /home, /root, /usr, /var ディレクトリをバックアップすることにします。
[root@noah ~]# vi backup.sh
#!/bin/sh
# 変数の設定
BACKUP=192.168.11.2
RSYNC='rsync -avz -e ssh --delete'
# pingで対象ホストが稼動してるか確認
/bin/ping -c 1 $BACKUP
# 稼動してれば、rsyncを実行、稼動してなければ、メールでエラーを通知
if [ $? -eq 0 ] ; then
$RSYNC /etc $BACKUP:/tmp/mirror/
$RSYNC /home $BACKUP:/tmp/mirror/
$RSYNC /root $BACKUP:/tmp/mirror/
$RSYNC /usr $BACKUP:/tmp/mirror/
$RSYNC /var $BACKUP:/tmp/mirror/
else
echo "rsync NG" | mail -s "rsync" root
fi
10.定期自動実行設定
バックアップを毎日同じ時間に定期的に実行するための設定をする。
[root@noah ~]# echo "0 5 * * * root /root/backup.sh" > /etc/cron.d/backup
設定は以上です。
定期起動させる前に、試しに backup.sh を動かしてみてもいいです。 初回なので、結構時間がかかると思います。
※当方は以前、別の方法でバックアップをしていましたが、それはヤメにしました。
当分は、これでやってみることにします。
それじゃ、また。
Comments