「ミラーリングがしたい〜wget編〜」Tipsでは、ツール「wget」を利用して手軽にミラーリングを行う方法を紹介した。
ここでは、ツール「mirror」を使用してミラーリングを行う方法を解説しよう。ミラーリングとは、単なるファイルコピー(cp)とは異なり、ファイルスタンプを判別して最新ファイルのみをダウンロード、またはアップロードを行うことができる仕組み(ツール)だ。
ここで紹介するツール「mirror」はPerlスクリプトで記述されており、利用するにはあらかじめPerlが動作する環境が必要だ。コマンドラインで「$ which perl」などと入力すれば、インストール済みかが判断できる。
・mirror入手先
ftp://sunsite.sut.ac.jp/pub/archives/packages/mirror/
# mkdir /usr/local/mirror # cd /usr/local/mirror # tar zxf mirror-2.9.tar.gz # pwd /usr/local/mirror/ # ln -s mirror.pl mirror |
インストール時に注意する点は、mirror-x.x.tar.gzがディレクトリを作成せずにカレントディレクトリに解凍されることだ。あらかじめ、上記のように「/usr/local/mirror」などとディレクトリを作成しておくのがよい。また、ここでの例では、便宜上「mirror.pl」ファイルを「mirror」としてシンボリックリンクさせておいた(ここでは「/usr/local/」ディレクトリ下に作成するため、すべてrootで行っている)。
次は、ミラー元サイトにログインするための設定を記述する手順だ。
アーカイブを展開した/usr/local/mirror/ディレクトリには、「mirror.defaults」ファイルが見られる。このファイルには設定例が記述されているが、次の例を参考にして新たに設定ファイルを作成した方がよいかもしれない。
なお、設定ファイル内にはパスワードを記述する必要があるため、次のようにファイルオーナー以外が読みとれないようパーミッション変更をしよう。
# chmod 600 mirror.defaults |
# vi /usr/local/mirror/mirror.defaults # パッケージ名 package=default # ミラーログイン先 site=xxx01.zdnet.co.jp # ミラーを行うローカルとログイン先の各ディレクトリ local_dir=/pub/www/help remote_dir=/help # ユーザー名とパスワード remote_user=xxxx remote_password=xxxx # 実行ログ通知を行う場合の配送先 mail_to=helpdesk@zdnet.co.jp # ダウンロードモードは「true」、アップロードは「false」 get_file=true # パーミッションの設定 dir_mode=0755 file_mode=0644 # ローカル側でファイルを消したらサーバでも削除する do_deletes=true # グループ設定 group=help |
なお、次のように設定ファイル内に「package=」以下の行を複数用意すれば、「mirror -p [package名]」(mirror -p enterprise)と指定することで実行可能になる。
....中略.... package=enterprise site=xxxx.zdnet.co.jp local_dir=/pub/www/enterprise remote_user=hoge remote_password=hogege mail_to=help-update@zdnet.co.jp remote_dir=/enterprise get_file=true dir_mode=0755 file_mode=0644 group=help package=developer site=xxxx.zdnet.co.jp local_dir=/pub/www/developer remote_user=hoge remote_password=hogehoge mail_to=help-update@zdnet.co.jp remote_dir=/developer get_file=true dir_mode=0755 file_mode=0644 group=help ...以下略... |
上記設定内容にてパッケージ名「enterprise」で「mirror -p enterprise」として実行させた場合、「xxxx.zdnet.co.jp」宛にユーザー「hoge」、パスワード「hogege」でログインし、リモート先「/enterprise」ディレクトリ下を、ローカルの「/pub/www/enterprise」にダウンロード(get_file=true)することを意味する。その際、ディレクトリ作成パーミッションは「755」、ファイル作成パーミッションは「644」、グループは「help」となる。
表■mirrorコマンドオプション
|
設定後は、例えばcronで次のようにスケジュールすることで、自動的に定期的なファイル同期が可能になる。
$ crontab -l 0 10 * * * /usr/local/mirror/mirror -p enterprise 2>/dev/null 3 10 * * * /usr/local/mirror/mirror -p developer 2>/dev/null |
Copyright © ITmedia, Inc. All Rights Reserved.