2006年2月 1日

[Namazu-users-ja 672] mknmzが止まってしまう

shimizuと申します。

こういう使い方はあまりされないのかもしれませんが、
インデックス作成が止まってしまう現象が起きたので報告しておきます。

現象:
mknmzでのインデックス作成において、
「mknmz: /home/hoge/getfile/xxxx :

そのようなファイルやディレクトリはありません」
のようなメッセージを吐いてインデックス作成が停止する。
なお、テンポラリのインデックスファイル(NMZ.xxx.tmp)は
停止時に削除されたようで残っていない。
 namazu ver.2.0.15, 2.0.14, 2.0.12で確認
 OS:Linux

現象の起こる条件:
インデックス対象ファイルのファイル名末尾にスペースが入っている


以下に具体的な例を書きます。

wgetでWebページを再起的に取得。
htmlページからリンクしているsrch.php?key=testのようなページを
wgetが取得しそのままの名前で保存。

index.html
srch.php?key=test1
srch.php?key=test2
srch.php?key=test3
   ・
   ・

mknmzrcには以下のように設定し、
$ALLOW_FILE = ".*\\.(?:$HTML_SUFFIX)|.*\\.txt" . # HTML, plain text
"|.*\\.php" .
"|.*\\.php\\?.*";

インデックス作成は
mknmz -U -e -s --config=/home/hoge/nmz/mknmzrc \
-O /home/hoge/nmz/index /home/hoge/getfile

mknmzの結果、
wgetで取得したファイルのファイル名が
'srch.php?key=test1' のようなとき問題なくインデックス作成続行。
'srch.php?key=test 1' のようなとき問題なくインデックス作成続行。
'srch.php?key=test1 ' のようにファイル名末尾にスペースがある
ファイルに当たると問題の現象が起こる。すなわち、
「mknmz: /home/hoge/getfile/srch.php?key=test1 :
そのようなファイルやディレクトリはありません」
とメッセージを吐いて停止する。

なお、末尾のスペースは取得元のURLに入っていたからで、
wgetは忠実にURLを復元したファイル名を作っているようです。
wget: ver.1.9.1。


この例の場合はとりあえずの対処ですが、
$ALLOW_FILE = ".*\\.(?:$HTML_SUFFIX)|.*\\.txt" . # HTML, plain text
"|.*\\.php" .
"|.*\\.php\\?.*[^ ]";
とすることで、問題のファイルを対象外にすることができたので、
インデックス作成が出来ました。
もちろん、問題のファイルは検索対象外になってしまいます。

とりあえず、ご報告まで。


_______________________________________________
Namazu-users-ja mailing list
Namazu-users-ja@xxxxx
http://www.namazu.org/cgi-bin/mailman/listinfo/namazu-users-ja

投稿者 xml-rpc : 2006年2月 1日 16:53
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/30736
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。