CVSup を利用したバックアップ体制構築

CVSup サーバ側の設定

サーバ側では、cvsupd を常駐させておくことになります。必要な設定は以下の通りです。

1.同期するファイルの置き場所を作る

同期するファイルはまとめておいた方が効率が良いので、データを置いておくディレクトリを作成します。

ここでは、

/my/data/path

とします。

※ 全てのテストと設定が終了するまでは、テスト用ディレクトリを準備することをお勧めします。

2.同期するファイル"コレクション"を設定する

CVSup の設定ファイルのデフォルトの設置場所は、/usr/local/etc/cvsup です。
CVSup の設定のデフォルト値の多くは変更可能ですが、以下の記述は、特に記載の無い限り、デフォルト値を使用しています。変更が必要な場合は、マニュアルなどを読んで変更して下さい。
コード中の太字は、環境に合わせて書き換えて下さい。

同期するファイルの一群をCVSupでは「コレクション」と呼びます。複数のコレクションを設定することが出来ますが、バックアップのためには、1つのコレクションでOKです。

ディレクトリを作成します。

cd /usr/local/etc/cvsup
mkdir sup
mkdir sup/mydata

「mydata」がコレクション名。任意に指定できます。

3.コレクションのファイル(ディレクトリ)を指定

コレクションの中身を設定します。

cd /usr/local/etc/cvsup/sup/mydata

前項で作成したディレクトリに移動。

echo ‘all list=list prefix=/my/data/path‘ > releases

prefix に同期するファイルがあるディレクトリを指定。「all」はキーワードだと思って下さい。任意に指定できます。

echo ‘upgrade *’ > list

ファイル名「list」は、前行で指定している。

上記の設定は、

  • mydata コレクションのファイルは、/my/data/path 以下にあり
  • クライアントからのアクセスがあったら全ての更新されたファイルを同期する

という意味になります。

4.アクセス制限

お客様のデータもインターネット上のサーバに置くので、誰でもCVSupサーバにアクセスできないようにアクセス制限を行う設定にします。

cd /usr/local/etc/cvsup

CVSup設定ディレクトリに移動。

echo ‘*0.0.0.0/0’ > cvsupd.access

全てのホストからのアクセスに、認証が必要になります。

echo ‘my.domain.name:mysecretphrase‘ > cvsupd.passwd

「my.domain.name」 はCVSupサーバが「自分の名前」と認識します。DNSに登録されている名前である必要はありません。
「mysecretphrase」
は認証用の暗号作成のタネになります。任意の文字列を指定出来ます。

※ cvsupd.passwd は、クライアント側でパスワードを決定した後、もう一度編集が必要になります。

どちらのファイルも、必要の無いユーザからのアクセス権限を制限して下さい。筆者は、CVSupサーバ用のユーザを新たに作成し、そのユーザのみに読取・書込権限を与えました。

5.サーバ(cvsupd)の起動

/usr/local/sbin/cvsupd -C 5

を実行すると、cvsupd が常駐します。

netstat -a

を実行すると、
ポート5999で cvsupd が listen しているのが見えるはずです。
ただし、まだクライアント側の認証の設定をしていないので、アクセスは出来ません。

以下は、自動起動用のスクリプトのサンプルです。

% cat /usr/local/etc/rc.d/cvsupd.sh
#!/bin/sh
[ -x /usr/local/sbin/cvsupd ] && \
su -m cvsadmin -c "/usr/local/sbin/cvsupd -C 5 -Z 9 -l /var/tmp/cvsupd.log -p 2222" && \
echo -n ‘ cvsupd’

「cvsadmin」はCVSupサーバ用に作成したユーザです。
-p オプション で、ポートを変更することが出来ます。