green FTP サーバの構築 [目次] [前のページ次のページ]

3.FTP mirror

(3.1) 概要

green は主に専攻サーバーの構築に必要なファイル、 パッケージを取得するために様々なサイトをミラーリングしている。

[ 取得するファイルやパッケージ、各々のミラー先 ]
Debian ftp://ftp.jp.debian.org/
OTP ftp://starbow.st.ryukoku.ac.jp/pub/security/tool/opie/
inn ftp://ftp.isc.org/isc/inn/
wu-ftpd ftp://ftp.wu-ftpd.org/pub/wu-ftpd/
qmail ftp://ftp.jp.qmail.org/qmail/
ezmlm ftp://ftp.jp.qmail.org/ezmlm/
smtp ftp://ftp.cac.washington.edu/imap/
imap ftp://ftp.win.ne.jp/pub/network/mail/qmail/

green ではミラーリングの自動化のために専用のアプリケーションを導入している。 今回は Debian パッケージに含まれている"fmirror version 0.8.4"を用いた。 以下 fmirror の設定ファイルを用いたミラーリングの方法について説明する。

(3.2) インストール

dselect で行う。 Debian GNU/Linux にはソフトウェアのインストールを簡単に行うために dselect、apt-get、dpkg といったコマンドが用意されている。 ここでは dselect を用いる方法を解説する( ソフトウェアのインストール、dselect より引用)。

まず root としてログインし、
# dselect
を実行。

[A]ccess
"ftp" を選択する。
以下設定する箇所のみを書く。 コロンのあとに何も書かれていない場合はリターンを押したことを意味する。
・Enter ftp site []:
dennou-h.ees.hokudai.ac.jp
・Use passive mode [y]:
・Enter username [anonymous]:
・Enter password [root@green.sci.hokudai.ac.jp]:
自分のメールアドレスを書く
・Enter debian directory [/pub/]:
/arch/cc-env/Linux/debian-jp
・Go through an authenticated FTP proxy [n]:
・Enter space seperated list of distributions to get[]:
dists/slink/main dists/slink/non-free dists/slink/contrib dists/slink-jp/main dists/slink-jp/contrib dists/slink-jp/non-free (スペースで区切る)
・Enter directory to download binary package files to (relative to /var/lib/dpkg/methods/ftp/) [debian]:

[U]pdate
リターンを押す

[S]elect
スペースキーを押してファイル一覧画面になったら、 /(スラッシュ)に続けて"fmirror"と入力する。
fmirror の行で"+"を押す(インストールするパッケージに加えられる)
fmirror の依存するパッケージの一覧が表示されるので、 リターンを押す

[I]nstall
fmirror と依存するパッケージがインストールされる。

[C]onfig[R]emove[Q]uit と順に実行

(3.3) 設定

fmirrorの設定ファイルは /etc/fmirror に置かれる。 ここには実際にミラーリングを行う際の設定と ミラーリングの実行を記述したシェルスクリプトである *.conf ファイルと、 cron による自動ミラーリングを意識した config ファイルがある。
/etc/fmirror/debian.conf など /etc/fmirror/*.conf の中身は、
green の /etc/fmirror/debian.conf
green の /etc/fmirror/OTP.conf
green の /etc/fmirror/inn.conf
green の /etc/fmirror/wu-ftpd.conf
green の /etc/fmirror/qmail-smtp.conf
green の /etc/fmirror/ezmlm.conf
green の /etc/fmirror/imap.conf
green の /etc/fmirror/imap-patch.conf
green の /etc/fmirror/config
を参照のこと。
ここでは debian.conf を例にして *.conf ファイルの設定内容を説明する。
※行頭の番号は説明のためにつけたもので、実際のファイルには含まれていない。

(3.3.1) generic.conf の設定内容

<7>:username
ミラーリング先の ftp サーバに ログオンする際に使用するユーザー名。
ここでは anonymous としている。
<8>:passwd
green 管理者のメールアドレスを入れる。
<9>:host
ミラーリングするサーバのドメイン名もしくは IP アドレス。
ここでは ftp.jp.debian.org とする。
<10>:remotedir
リモート(ミラーリングするサーバ) のミラーリングを行うディレクトリ。 ここで指定している。/ とする。
<11>:localdir
ローカル(green)のミラーリングを行うディレクトリ。
ここでは /home/ftp/pub/common/Linux/ を指定している。
<17-18>:exclude
指定するパターンにマッチするファイルはミラーリングしない。

※ bin、etc、lib 各ディレクトリのミラーリング除外
<11>行目で指定している localdir(green の /home/ftp/) には 元から bin/、etc/、lib/ といったディレクトリが存在する。 これらは anonymous FTP ユーザーが利用するための ls コマンドなどを含んでいるが、 ミラーリングによってこれらのディレクトリが上書きされた場合、 anonymous FTP でログインした際に ファイルが表示できなくなるなどの問題が生じる。 そこで <20-21>行では exclude 構文を用いて これらのディレクトリをミラーリングの対象から除外している。 この設定はデフォルトでインストールされる generic.conf には 含まれていないので管理者が記述しなければならない。

<21>行目に、

exclude: p ^(bin/|etc/|lib/)

と書き加える。^(bin/|etc/|lib/) は正規表現を用いている。

(3.3.2) configの設定内容

こちらは次に説明する cron によるミラーリングのための 各種環境変数の設定を行っている。
重要なのは<30>行目である。

NIGHTLY_JOBS="wu-ftpd OTP inn qmail-smtp ezmlm imap imap-patch"

とする。ここで変数 NIGHTLY_JOBS に指定した文字列に .conf を付けた名前のファイルが cron によるミラーリングの設定に用いられることになる。 ここでは debian wu-ftpd OTP inn qmail-smtp ezmlm imap imap-patch となっているため debian.conf 、wu-ftpd.conf 、... ファイルが使われる。 ただし debian は容量が非常に大きいため毎日ミラーせず、 以下のように設定することで毎週日曜日のみミラーを行うようにした。

DAY[0]="debian"

(3.4) cron による自動化

UNIX には定期的に行う作業を自動的に行うための cron というツールが用意されている。 さらに debian では /etc/cron.daily/、 /etc/cron.weekly/ といったフォルダを用意している。 これらのフォルダに格納されたプログラムをそれぞれ毎日、 毎週実行することで設定を簡単にしている。 fmirror の実行スクリプトはデフォルトで /etc/cron.daily に格納されている。

greenの/etc/cron.daily/fmirror
※行頭の番号は説明のためにつけたもので、実際のファイルには含まれていない。

(3.4.1) /etc/cron.daily/fmirror の内容

<27>: confdir
設定ファイルを格納したディレクトリを指定している。 デフォルトは /etc/fmirror。
<28>: logdir
ミラーリングのログを格納するディレクトリを指定している。 デフォルトは /var/log/fmirror。
<34>: . $confdir/config
上で説明した /etc/fmirror/config を実行することにより各種設定を行う。
<59-60>:
/etc/fmirror/debian.conf を設定ファイルに用いてミラーリングを行う。

(3.5) ミラーリングの流れ

以上のミラーリングの行程を簡単に説明すると次のようになる。

  1. cron により /etc/cron.daily/fmirror が実行される。
  2. /etc/cron.daily/fmirror は /etc/fmirror/config を実行する。
  3. /etc/fmirror/config はミラーリング設定ファイルとして /etc/fmirror/debian.conf を読み込む。
  4. /etc/fmirror/debian.conf を設定ファイルとしてミラーリングが行われる。


4.参考文献

大澤文孝、永安悟史、松枝知直 1999 インターネットサーバ構築術 Linux編 工学社
Cricket Liu、Adrian Nye 共著、小川正夫、本多淳子 監訳、加藤勝明 著 1997 FTP サーバ構築ガイド オライリー・ジャパン


更新日: 2000/07/05 河野仁之 [目次] [前のページ次のページ]