探検


namazuでサーバーを立てたい

1名無しさん@ディストリいっぱい
垢版 |
NGNG
この板の過去ログを検索したくても不便です。
そこでnamazuを使って検索用のサーバーを立てようと思います。みんなのために。
namazuのインストールは終了しました。動作もばっちりです。
ただログを収集するのが大変です。
自動的にログを収集してくれるスクリプトってないですか?
っていうかそんなの持ってる人いたらください。
あと
http://cocoa.2ch.net/linux/dat/
↑ここからログを拾うとdatファイル形式なのでhtmlで表示されません。
ログはどこから拾ってくればいいんでしょうか?
html形式で保存されているほうが何かと便利なんですけど。
2名無しさん@ディストリいっぱい
垢版 |
NGNG
http://cocoa.2ch.net/linux/kako/
↑ここにもちょっと過去ログがあるのは知ってます。
ここのはhtmlで保存されているのでいいんですがdatファイルは・・
datファイルをhtmlファイルに一気にコンバートするツールってあったっけ?
NGNG
なければつくる
4名無しさん@ディストリいっぱい
垢版 |
NGNG
http://members.tripod.co.jp/tatsu01/
調べてたらあったや。dat→html

あとは自動的にログを収集してくれればいいんだな。
って、ログを自動収集することが可能でもコンバートは自動的にやってくれないや・・
5名無しさん@お腹いっぱい。
垢版 |
NGNG
wget -r -k -np -l 2 http://cocoa.2ch.net/linux/kako
dat->html
なシェルスクリプト書いて、cronかatの定時処理で取得では
だめなのかな。
6名無しさん@お腹いっぱい。
垢版 |
NGNG
>>2 >>5 に示された過去ログ倉庫には、ある程度時間のたったものしか
入らないので、新鮮な index ができない。よって、>>1 の示した
dat ファイルから直接拾うのが吉。それは、>>1 も分かっていることと
思う。

あとは、作成された index を、.namazurc にて URL 置換するときに、
工夫が必要。>>1 から拾うと、
$namazudir/http://cocoa.2ch.net/linux/dat/989179375.dat
といったようなディレクトリに index が保存されることになる。
これを、REPLACE文で
http://cocoa.2ch.net/test/read.cgi?bbs=linux&key=989179375
といったURLに置換すればいい。最後の .dat があるので、どうすれば
いいのかちょっと面倒そう。

と、ここまで考えて思ったが、こうすると .dat ファイルに残っている
ものだけなので、逆に倉庫入りしたものは見られなくなるかな。
結局、http://cocoa.2ch.net/linux/dat/ と
http://cocoa.2ch.net/linux/kako をいっしょに wget で落として、
適切な index 処理を行う必要がありそう。

dat ファイルそのものを index 処理にかけても、文章が拾えて
index が作成されれば用が足りるわけですが、TITLE が拾えないのが
ちょっと残念かな。
7名無しさん@お腹いっぱい。
垢版 |
NGNG
>>3
そりゃそうなんだけど、せっかくlinux板のための建設的な意見を
出してくれているんだから、なければおまえがつくれ、ではなくて、
ここでみんなでスクリプトを作っちゃえ!というくらいの勢いが
あってもいいかもしれない。
NGNG
応援age
9名無しさん@お腹いっぱい。
垢版 |
NGNG
agaってなかった、、再age
10名無しさん@お腹いっぱい。
垢版 |
NGNG
>>4
まさか、収集するのは Windows のマシンではないだろうから、
そのソフトを使うのは無理では。shell とか C とか perl
とか、なんでもいいけど普通にスクリプトで動かせる dat2html
って、まだ誰も作ってないのかな。

誰かつくりません?
11名無しさん@お腹いっぱい。
垢版 |
NGNG
datファイルから直接 index を作成するためには、

1. http://cocoa.2ch.net/linux/dat/ から dat ファイルを拾う
2. 1. で拾ったファイルを、***.dat といったファイルから
 *** というファイル (.html はいらない)へ、dat2html で
html 変換する(別ディレクトリへ)
3. 変換されたファイルに対して、mknmz
4. その index から、.namazurc にて
 REPLACE REPLACE $indexdir/ http://cocoa.2ch.net/test/read.cgi?bbs=linux&key=
 といった変換をすればよい

過去ログ倉庫から index を作成するのは、そのまま wget,
mknmz のみで一発でいける。

問題は、両者を統合した index を作るときだけど、namazu
をよく調べれば、こういった場合の .namazurc の書き方は
おそらくあるはず。詳しい人、さらにフォロー頼む。
12名無しさん@お腹いっぱい。
垢版 |
NGNG
super age
13名無しさん@お腹いっぱい。
垢版 |
NGNG
>>10
実際、ここでログを過去ログ倉庫送りする際に、dat2htmlスクリプトを
使っているはずなので、2chのサーバーのどこかに dat2html が存在して
いることはたしかです。それがどこにも公開されていないとすれば、
プログラムがある程度できる人ならばそんなに難しいスクリプトでは
ないでしょうから、作ってしまった方がいいかもしれませんね。

誰か、dat2htmlを作ってここに書きこんでくださる方はいませんか。
NGNG
適当だが>>13
$cnt=1;
# ここで適当なHTMLヘッダを出す
$fff=shift;
open(TH,$fff) || die "open error\n";
$_=<TH>;
chop $_;
$num=@dat=split(',',$_);
print "<title>".$dat[4]."</title>\n";
print '</HEAD>'."\n";
print '<BODY TEXT="#000000" BGCOLOR="#FFFFFF" link="#0000FF" alink="#FF0000" vli
nk="#660099">'."\n";
print $cnt.":".$dat[0]."(";
print $dat[1].") ";
print "date:".$dat[2]."<br>\n";
print $dat[3]."<br><br><br>\n";
$cnt++;
while(<TH>){
chop $_;
$num=@dat=split(',',$_);
print $cnt.":".$dat[0]."(";
print $dat[1].") ";
print "date:".$dat[2]."<br>\n";
print $dat[3]."<br><br><br>\n";
$cnt++;
}
print '</body></HTML>'."\n";
15名無しさん@お腹いっぱい。
垢版 |
NGNG
>>14 age
16名無しさん@お腹いっぱい。
垢版 |
NGNG
age
NGNG
>>13
,が余計にあると混乱するみたい
NGNG
namazuの開発が沼津で行われてたってのは実話?
19名無しさん@お腹いっぱい。
垢版 |
NGNG
支障のオナニースレと三流大スレとrh叩きスレの下にあるのは言語道断。
この板で今生きている唯一の良スレだ。常に上にあるべき。age
2014
垢版 |
NGNG
>>17
その辺は修正してくれ、10分で書いたやつだからと言い訳
21名無しさん@お腹いっぱい。
垢版 |
NGNG
テストランしてないけど、

#!/bin/sh

export dat2html=/usr/local/bin/dat2html.pl
export workdir=/home/2ch
export wgetdir=$workdir/wget
export datdir=$wgetdir/linux/dat
export namazudir=$workdir/namazu

cd $wgetdir
wget -m -I linux/dat http://cocoa.2ch.net/linux/dat/
for i in `ls $datdir`
do
j=`echo i | sed -e 's/.*\.dat//'`
cat $datdir/$i | $dat2html > $wgetdir/'cocoa.2ch.net/test/read.cgi?bbs=linux&key='$j
done
rm -rf $wgetdir/linux/dat

wget -m I linux/kako http://cocoa.2ch.net/linux/kako/

cd $namazudir
mknmz -eU $wgetdir/
22名無しさん@お腹いっぱい。
垢版 |
NGNG
こんな感じのスクリプトを動かせば、

REPLACE $wgetdir http://

で動くかも。
23名無しさん@お腹いっぱい。
垢版 |
NGNG
>>21
typoを2箇所発見。diff とるまでもないので、修正したスクリプトを
そのまま貼りつける。

# 今、Linuxが手元にないので、誰かテスト頼む

#!/bin/sh

export dat2html=/usr/local/bin/dat2html.pl
export workdir=/home/2ch
export wgetdir=$workdir/wget
export datdir=$wgetdir/linux/dat
export namazudir=$workdir/namazu

cd $wgetdir
wget -m -I linux/dat http://cocoa.2ch.net/linux/dat/
for i in `ls $datdir`
do
j=`echo $i | sed -e 's/.*\.dat//'`
cat $datdir/$i | $dat2html > $wgetdir/'cocoa.2ch.net/test/read.cgi?bbs=linux&key='$j
done
rm -rf $wgetdir/linux/dat

wget -m -I linux/kako http://cocoa.2ch.net/linux/kako/

cd $namazudir
mknmz -eU $wgetdir/
24名無しさん@お腹いっぱい。
垢版 |
NGNG
>>23
完璧です。
25名無しさん@お腹いっぱい。
垢版 |
NGNG
>>20
実際にソースを書いて晒している。とても偉い!
この板で偉くても自慢にならないところが珠に傷か
26名無しさん@お腹いっぱい。
垢版 |
NGNG
>>23
同上
27名無しさん@お腹いっぱい。
垢版 |
NGNG
おお、なんだかすごいことになりそうな予感。
ここまでくれば、実際に>>1にテストしてもらって、
不具合があればここでわいわいやればあっという間に
出来そう。>>1サーバーの負荷がはたしてどこまで
耐えられるか。この板だけならば、それほどでもないかな。
28名無しさん@お腹いっぱい。
垢版 |
NGNG
>>23

私もちょっとテストしてみましたが、
j=`echo $i | sed -e 's/.*\.dat//'`
のところは
j=`echo $i | sed -e 's/\.dat//'`
の誤りのようです。

最新バージョン

#!/bin/sh

export dat2html=/usr/local/bin/dat2html.pl
export workdir=/home/2ch
export wgetdir=$workdir/wget
export datdir=$wgetdir/linux/dat
export namazudir=$workdir/namazu

cd $wgetdir
wget -m -I linux/dat http://cocoa.2ch.net/linux/dat/
for i in `ls $datdir`
do
j=`echo $i | sed -e 's/\.dat//'`
cat $datdir/$i | $dat2html > $wgetdir/'cocoa.2ch.net/test/read.cgi?bbs=linux&key='$j
done
rm -rf $wgetdir/linux/dat

wget -m -I linux/kako http://cocoa.2ch.net/linux/kako/

cd $namazudir
mknmz -eU $wgetdir/
29名無しさん@お腹いっぱい。
垢版 |
NGNG
その前に1は生きてるのか?
301
垢版 |
NGNG
死にました
NGNG
>>30
ザオリク。
32名無しさん@ディストリいっぱい
垢版 |
NGNG
うおっ!!!こんなにレスがついてる!!朝は放置されてたのにーーー
しかも!!スクリプト完成してる!!!カンドー
でも・・僕のような初心者にこれは・・・どこか遠くに逃げたい・・
NGNG
>>32
1か?本当に1か?ちゃんとやるんだろうな?
まさか見通しも立てないでただスレ立てたんじゃないよな?
だとしたら逝け。いや、マジで。リアルで逝け。
34名無しさん@お腹いっぱい。
垢版 |
NGNG
とりあえず落ち着け。難しいことは書いてないぞ。
スクリプトまでできてるんだから、あとは動かすだけだ。
35名無しさん@お腹いっぱい。
垢版 |
NGNG
シェルスクリプトの環境変数くらいはいじっておくように。
36名無しさん@ディストリいっぱい
垢版 |
NGNG
僕が今やったこと。
>>14さんのdat2htmlをdat2html.plにリネームして/usr/local/bin/に入れた。
>>28さんのスクリプトを2ch.shにリネームして/home/2ch/に入れた。
両方のパーミッションを755にした。
意気揚揚としてコマンド打った。
2ch.sh!!!!
し〜ん。
僕・・・この場から逃げたい・・・
37名無しさん@ディストリいっぱい
垢版 |
NGNG
反応がない・・もしかしてみんな・・僕を変な目で見てる???
あ〜逃げたい〜
38名無しさん@ディストリいっぱい
垢版 |
NGNG
まさかこんなに盛り上がると思わなかったよ〜〜〜
責任が重い・・
39名無しさん@お腹いっぱい。
垢版 |
NGNG
し〜んって、エラーメッセージもなにも表示されず?
プログラムは終了したのか、それとも固まったのか?
それから、wget はインストールされてるか?

反応がないって、そりゃ6分間で反応が返ってくるとは
限らないぞ。気長に待て。
40名無しさん@お腹いっぱい。
垢版 |
NGNG
それから、date2html.pl の先頭に
#!/usr/bin/perl (パスは直して)
を加えて、
chmod +x /usr/local/bin/date2html.pl
をすることも忘れずに。スクリプトを、perl $date2html
と直してもどちらでも可能。
41名無しさん@お腹いっぱい。
垢版 |
NGNG
なにも反応がないというのが気にかかるのだけど、あとかんがえられると
したら、wget とか mknmz のパス設定かな?/usr/local/bin あたりに
インストールされていると、スクリプトをフルパスで指定するように
書き換えないといけない。wget -> /usr/local/bin/wget,
mknmz -> /usr/local/bin/mknmz などと、フルパスで書き換えて
みるといい。環境変数で設定しておく方がきれいだけど、動けば良し。
42名無しさん@ディストリいっぱい
垢版 |
NGNG
>>39さん
bash:2ch.sh: command not found
で止まります。さっきまでは
bash:
し〜ん
だったのに・・さっきまでのほうがまだよかったのかなあ・・
>>40さん
#!/usr/bin/perl
ですね・・
#!/usr/local/bin/perl
って書いてました・・ありがとうございます。
43名無しさん@お腹いっぱい。
垢版 |
NGNG
2ch.shにパスが通ってないとか。
/home/2ch/2ch.sh で実行できない?
44名無しさん@ディストリいっぱい
垢版 |
NGNG
>>41さん
wget と mknmz は /usr/bin/ にインストールされてました。
>>43さん
それでもダメです・・・

んで、しょうがないから dat2hmtl.pl を /usr/bin/ に移動して 2ch.sh の
export dat2html=/usr/local/bin/dat2html.pl
の行を
export dat2html=/usr/bin/dat2html.pl
に書き換えました。問題ないですよね?

考えます。悩みます。せっかくみんなが作ってくれたんだから頑張ります。
45名無しさん@ディストリいっぱい
垢版 |
NGNG
走った!!!走りました!!!すごいっす!!!全自動!!!これでいけるぞー!!
sh 2ch.sh
だったんですね・・・すみません・・お騒がせしました・・
レスを投稿する


ニューススポーツなんでも実況