I&U Home > うにまま(仮)

【PR】UNIXサーバ管理を任されたら・・・これを読もう!

・・・やってみたい・・・


■■ mirror.pl ■■

unix/linux 上でミラーリングを行うときには mirror.pl がお勧め。 perl のスクリプトなのでコンパイルしなくてもいいし、 だいたい、ミラーリングをしようなどと思うマシンには perl くらいは既にインストールされているはず。 (ですよね? そうだと言って・・・)

ダウンロードは
ftp://sunsite.sut.ac.jp/pub/archives/packages/mirror/ から。

mirror.plのインストールと簡単な設定

  1. mirror.pl をダウンロードする。
    • 現在は mirror-2.9.tar.gz
  2. 適当なディレクトリを作って展開する。
    % mkdir mirror
    % cd mirror
    % gunzip -c mirror-2.9.tar.gz | tar xof -
        
  3. mirror.pl にある perl のパスを適切にする。
  4. mirror という名前にコピーまたはシンボリックリンクする。
  5. mirror.default というファイルを編集する。
    ミラーリングしたいサイトが一つだけなら、すべての設定をこのファイルに書き込む。
    複数の場合は、サイトごとにパッケージファイルを作成するほうが管理しやすいと思う。
    hostname=                   自分のホスト名
    remote_password=
    
  6. packages/sunsite.org.uk を参考にパッケージファイルを作成する。
  7. 当サイトで使用しているパッケージファイルの例
    package=pir_ver
            comment=get PIR version
            site=nbrfa.georgetown.edu
            remote_dir=pir_databases/psd/codata/
            # This setting of local_dir is suitable for Un*x
            local_dir=/work/DB/tmp
            # If you are under Wind*ws then use a line like this instead:
            #       local_dir=c:\tmp\mirror
            get_patt=|^0codata.txt
    
    package=pir_data
            comment=get PIR files
            site=nbrfa.georgetown.edu
            remote_dir=pir_databases/psd/codata/
            # This setting of local_dir is suitable for Un*x
            local_dir=/work/DB/tmp
            # If you are under Wind*ws then use a line like this instead:
            #       local_dir=c:\tmp\mirror
            get_patt=|^pir[1-4].dat.Z
    

    mirror.pl は特に指定しなければ、リモートサイトにあるファイルをすべて get してきてしまう。 必要なファイルだけを get したい場合にはパッケージファイルに細かな指定をすることができる。 ここでは、get_patt=を使用してリモートディレクトリの中から必要なファイルだけを選択している。

当サイトでの mirror.pl の利用

当サイトの場合は、ダウンロードして来た PIR ファイルをバージョンごとに別ディレクトリに分けて管理したい。 しかし、ディレクトリを分けてしまうと mirror.pl の持ち味である最新ファイルのみをダウンロードするという機能を捨ててしまうことになる。

これを解決するために、

  1. mirror -p package=pri_ver パッケージファイル名

    でバージョン情報の入っているファイル 0codata.txt を get し、
  2. そのバージョンのデータを既に get してあるかどうかを確認する。
  3. ない場合だけ

    mirror -p package=pir_data パッケージファイル名

    で実際のデータファイルを get する。
  4. データはテンポラリにダウンロードしてきているので、バージョンを表す名前のディレクトリを作成してそちらに移動する。


2002.12.10


【PR】UNIXサーバ管理を任されたら・・・これを読もう!
【PR】プログラマ標準体型の方へ。1日120円からの簡単ダイエット

I&U Home > うにまま(仮)