EBNETD を用いて辞書サーバを構築する.
Red Hat Linux 9 にインストール.
EBNETD は辞書にアクセスするために EB ライブラリを使うので, EB ライブラリをインストールする.
$ cd $ wget ftp://ftp.sra.co.jp/pub/misc/eb/eb-4.0.tar.gz $ cd /usr/local/src $ tar zxvf ~/eb-4.0.tar.gz $ cd eb-4.0 $ ./configure $ make # make install
$ cd $ wget ftp://ftp.sra.co.jp/pub/misc/eb/ebnetd-1.0.tar.gz $ cd /usr/local/src $ tar zxvf ~/ebnetd-1.0.tar.gz $ cd ebnetd-1.0 $ ./configure $ make # make install # groupadd ndtpgrp # useradd -g ndtpgrp ndtpuser # mkdir /usr/local/var/ebnetd # chown ndtpuser:ndtpgrp /usr/local/var/ebnetd # chmod 755 /usr/local/var/ebnetd
設定ファイルのサンプルが
/usr/local/etc/ebnetd.conf.sample
にインストールされているので,これをコピー.
# cp /usr/local/etc/ebnetd.conf.sample /usr/local/etc/ebnetd.conf
ebnetd.conf の編集.
同時にアクセスできるクライアントの数を設定.
max-clients 20
アクセスを許可するホストの設定.
hosts 127.0.0.1 hosts 192.168.1.0/24
辞書として英辞郎を使うための設定.
begin book
name eijiro
title eijiro
path /usr/local/share/dic/eijiro
max-clients 10
hosts 127.0.0.1
hosts 192.168.1.0/24
end
編集した ebnetd.conf のチェック.
# ebncheck
ebnet と ndtp で使用するポートの設定をする.
/etc/services に以下を追加.
ndtp 2010/tcp ebnet 22010/tcp
辞書サーバのアクセスログを取る設定.
/etc/syslog.conf に以下を追加.
local0.info /usr/local/var/ebnetd/log/ebnetd.log
ログファイルの作成とアクセス権設定.
# mkdir -p /usr/local/var/ebnetd/log # touch /usr/local/var/ebnetd/log/ebnetd.log # chmod 644 /usr/local/var/ebnetd/log/ebnetd.log
syslog をリスタートさせる.
# service syslog restart
設定が反映されているかどうかテスト.
# logger -p local0.info "test message"
うまくいっていれば,
/usr/local/var/ebnetd/log/ebnetd.log
にログが残っている.
スタンドアローンではなく,xinetd 経由で起動するための設定.
/etc/xinetd.d/ebnet
を以下の内容で作成.
# default: off
# description: The ebnet server
service ebnet
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/local/sbin/ebnetd
server_args = --inetd
log_on_failure += USERID
}
/etc/xinetd.d/ndtp
を以下の内容で作成.
# default: off
# description: The ndtp server
service ndtp
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/local/sbin/ndtpd
server_args = --inetd
log_on_failure += USERID
}
設定を反映させるため,xinetd をリスタート.
# service xinetd restart
telnet を用いて ebnet への接続テスト.
$ telnet localhost ebnet Trying 127.0.0.1... Connected to localhost. Escape character is '^]'.
BOOKLIST と入力.
BOOKLIST !OK; book names and an empty line follows eijirou eijirou
QUIT と入力.
QUIT Connection closed by foreign host.
telnet を用いて ndtp への接続テスト.
$ telnet localhost ndtp Trying 127.0.0.1... Connected to localhost. Escape character is '^]'.
t と入力.
t 1 英辞郎 eijirou/eijiro 0 10 900 2 和英辞郎 eijirou/waeiji 0 10 900 3 略語郎 eijirou/ryaku 0 10 900 4 音辞郎 eijirou/otojiro 0 10 900 5 凡例 eijirou/hanrei 0 10 900 $*
Q と入力.
Q Connection closed by foreign host.
アクセス毎に増え続けるログを1日単位で回転させ, 古いものは削除する.
/etc/cron.daily/ebndaily
を以下の内容で作成.
#!/bin/sh /usr/local/sbin/ebndaily -l /usr/local/var/ebnetd/log/ebnetd.log root@localhost
-l オプションでログの場所を指定しないと,
/usr/local/var/ndtpd/log/ebnetd.log
にログを読みに行きエラーになる.
実行可能にしておく.
# chmod 755 /etc/cron.daily/ebndaily
viusulce@hotmail.com
Last modified: Sat Apr 24 10:41:00 JST 2004