ミラーリング(sitecopy)

1.はじめに

大事なファイルをサーバーに置いていて、ふっ飛んだ時は悲しい物です。(私も2度飛びました)
そこで、通常はHPのデータを外部のサーバーに上げる用ですが、sitecopyというのがあり、同期を取ってもらい
バックアップを目的としてsitecopyを使用して見ます。

2.インストール

いつものようにportsでインストールしましょう。
# cd /usr/ports/www/sitecopy
# make install clean
これで終了です。

3.設定

それでは設定に入ります。
ミラーする設定はユーザーごとに設定でき、更新内容の保存もユーザーごとに行われます。
保存先と設定ファイルの置き場は全てユーザーディレクトリーとなっております。
ミラーする場合、読み込む権限(パーミッション)が当然許可されていなくては出来ませんのでご注意下さい。

まずはユーザーディレクトリーの下煮ディレクトリーを作成します
$ cd ~
$ mkdir .sitecopy
$ chmod 700 .sitecopy
パーミッションは上記の数字でないと動作しませんのでご注意下さい。

次に、ミラーする内容の設定ファイルを編集します。
$ cd ~
$ ee .sitecopyrc
ファイルの中見は以下のようになります。
# サイト名(自分で命名してよい)
site abcd
# ミラーするサーバーアドレス
server hogehoge2.dyndns.org
# FTPでミラー(webdavも可能)
protocol ftp
# FTPのデータはPASVモードではなくアクティブで転送
# PASVの時は書かなければPASVになる
ftp nopasv
# ログインするユーザー名
username hogehogeuser
# ログインするパスワード
password hogehogepass
# ミラー先のディレクトリー
remote /datamirror
# ローカル側のディレクトリー
local /dataorg
# ローカルでファイルを移動させたときには、サーバでも移動させる
checkmoved
# パーミッションもミラーする
permissions all
# mule のバックアップファイルが upload されないようにする
exclude "*#"
exclude "*~"
サイトはいくつでも設定可能です。
同じファイルに引き続き別のサイトの無いようを書き込めば認識します。
このファイルはパスワードがモロに書かれている為、セキュリティーの関係上
パーミッションが600でないとsitecopyも動きませんので変更します。
$ chmod 600 .sitecopyrc

4.実行

このsitecopyの動作は完全に片側通行であり、sitecopyをインストールした方が親となります。
ミラー先にはまだ何も無い場合はいきなりミラーしてもかまいませんが、送る容量は自分で把握しておきましょう。
まず最初に全ての情報を初期化します。
$ sitecopy -i
通常は、自動ミラーを始める前にあるていど同期が取れている場合は、今現在は全てミラー済というような
情報にしてあげる必要があります。この場合はsitecopyを設定したユーザーでログインし、コマンドラインから
$ sitecopy -ac
で全てのサイトがミラー済というようになります。
もし、とあるサイトだけなら
$ sitecopy -c abcd
で「abcd」と設定されたサイトのみ、ミラー済になります。
次に、実際にミラーする場合は
$ sitecopy -au
で、すべてのサイトが順番にミラーが開始されます。
また、特定のサイトだけの場合は
$ sitecopy -u abcd
となります。

あとはこのコマンドをCRONに設定すれば自動でミラーされます。
ミラー終了後から追加、削除、変更されたファイルは全て同期を取ってくれます。
できるだけ、トラフィックの空いている時間帯を選んで効率良いミラーをしましょう

ちなみに2GB以上のファイルが有るとエラーしますのでご注意下さい。