X



トップページ運用情報
1001コメント268KB
【野鳥の会】 BBS.2ch.net 全発言統計の巻 part4
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001動け動けウゴウゴ2ちゃんねる
垢版 |
04/10/16 19:18:16ID:yzh8SYPb
2ちゃんねるの全発言の統計を取ろうに挑戦

bbs.cgi に一個DNS問い合わせの処理を追加
発言バイト数.スレッドkey.板.サーバ.CGI名.BBS.2ch.net をlook up
この方法でやるとかなり低コストで出来る予感。

すずめ (板別発言数統計) http://stats.2ch.net/suzume.cgi
からす (サーバー別発言数統計) http://stats.2ch.net/karasu.cgi
からす2 (鯖グループ別発言数統計) http://stats.2ch.net/karasu2.cgi
すずめ、からすはURLをcgi->cgi?yesterdayとすることで前日のデータを閲覧できます。

とんび (1時間単位板別発言数統計) http://stats.2ch.net/tonbi.cgi
・とんびのログっぽいの http://stats.2ch.net/kawasemi-h/
・とんびのログ分刻み版 http://stats.2ch.net/kawasemi-m/
・とんび2 (1時間単位板別バイト数統計) http://stats.2ch.net/tonbi2.cgi

つばめ (分単位多数発言スレッド統計) http://stats.2ch.net/tubame.cgi
つばめ (ex8専用) http://stats.2ch.net/tubame2.cgi

2ch一日全発言統計一覧
http://stats.2ch.net/kawasemi-d/2ch.txt


前スレまでの規制のまとめ

とかげの尻尾
極短時間に多くのスレを立てたり、レスをつけたりすると
●、★の有無に関わらず2時間の間、qb5以外の読み書きが規制されます。
読もうとすると http://qb6.2ch.net/403/ に飛ばされます。
記者、スレ立て代行さんは要注意。
現在のこの件での規制対象は http://qb6.2ch.net/403/c403.cgi で確認できます。

●を併用してもBBQチェック済みの串を使って書けないようになりました。

p2に関する質問や議論はソフトウェア板のp2スレでどうぞ。
現状もそちらでまとめられています。

p2+●に関する規制議論はこちらです。
http://qb5.2ch.net/test/read.cgi/sec2chd/1097492197/

過去スレ
part1 http://qb5.2ch.net/test/read.cgi/operate/1083526243/
part2 http://qb5.2ch.net/test/read.cgi/operate/1097666632/
part3 http://qb5.2ch.net/test/read.cgi/operate/1097821787/
0850root▲ ★
垢版 |
04/11/16 03:04:03ID:???
>>849
そですね。モジュールだけではむりぽかと。

RLimitNPROCでリミッターに激しくぶつかると、どうもシステム的にうまくないみたいなんですよ。
さて、どうしたものか。
0851FOX ★
垢版 |
04/11/17 15:55:36ID:???
質問でーす

現 stats.2ch.net はDNSクエリに対して非同期(よんだらすぐリターン)になっていますが
これを同期にするのってのは難しいんですか?

1) サーバの設定 (集計プログラムの呼び出し方等)
2) リターン値の返し方 (集計プログラムからどういう経路で呼び出し元へ返すの?)

なんてとこが知りたかったりします。
0852root▲ ★
垢版 |
04/11/17 17:18:56ID:???
同期というか、1 query受信したごとに、
その都度指定したプログラムを呼び出すようにしたいとかいうことですかね。
0853root▲ ★
垢版 |
04/11/17 17:19:30ID:???
>>852 は、簡単にできます。
ちょっと負荷上がりますが。
0854FOX ★
垢版 |
04/11/17 17:23:11ID:???
呼び出したいというよりは
「値を返したい」が目的だったりします。
0855root▲ ★
垢版 |
04/11/17 17:26:46ID:???
呼び出し元に何か返したいとしたら、
簡単にやるならプログラムのexit codeでやるのが楽かと。

つまり、>>853 の手法で子供のプログラムを呼び出す時にその終了を待つようにして、
呼び出し元プログラムで何かすると。

shell scriptなら、./log/run をたぶんこんなかんじにすればいいかなと。

while read $line; do
echo $line | multilog -t ./main
echo $line | 処理プログラム
if [ $? -eq 0 ]; then
処理プログラムの戻り値が0だったときの処理
else
それ以外の時の処理
fi
done
0856root▲ ★
垢版 |
04/11/17 17:28:00ID:???
こうやっておくと、
DNSクエリがない間は、readのところで入力を待っています。
0857FOX ★
垢版 |
04/11/17 17:30:26ID:???
ふむふむ

1) 呼び出されるプログラムは exit(????); で通知する。
2) exit のコードを貰って、呼び出し側はDNS look upの返り値に整形して
  大本の呼び出し側(bbs.cgi)に返すと

仕組みは理解したはずー
0858root▲ ★
垢版 |
04/11/17 17:36:23ID:???
>>857
1)はそれでよいです。

3)はひょっとして gethostbyname()したおおもとのプログラムに返す値を、
exit()の結果に応じてダイナミックに変えたいといっています?

今のしくみだと、前と同じものをもう1回聞かれた時に違う値を返す、
ってのはできますが(BBX/Rock54で採用)、
一発目の応答を変えるってのは、今の仕組みではちょっと難しいかも。
0859FOX ★
垢版 |
04/11/17 17:44:46ID:???
そうなんです

【bbs.cgi】 -DNS look up-> 【DNS server】 -処理呼び出し-> 【集計プログラム】
                                     ↓
                                    処理&リターン値(数値)
                                     ↓
5454545454 <- 【23.23.23.23形式に変換】 <-exitで通知- 【5454545454】

こんな事を考えているです。
つまり 【23.23.23.23形式に変換】 このあたりが複雑ということですか?
0860root▲ ★
垢版 |
04/11/17 17:51:30ID:???
やりたいのはこんなかんじ ?

bbs.cgi → gethostbyname() →(DNS問い合わせ)→ BBS → 処理プログラム

というDNS問い合わせが起こったときに、*その問い合わせへの答え*として、

処理プログラム → BBS →(何らかの値)→ gethostbyname() → bbs.cgi

というルートで値を戻したい。
0861FOX ★
垢版 |
04/11/17 17:53:06ID:???
そなんです。
0862root▲ ★
垢版 |
04/11/17 17:54:34ID:???
お、かぶった。>>859 >>860 は同じこと書いていますね。

ええと、問い合わせを受けたときに bbs.cgi に値を返しているのは、DNSサーバです。
つまり、BBSシステムと非同期であると。

で、これを同期(というかダイナミック)にしたいということですね。

それは、今のBBSの仕組みそのままでは難しいすね。
同じような別の仕組みを作れば、できるかも。
0863FOX ★
垢版 |
04/11/17 17:57:10ID:???
具体例でいくと、

read.cgi の呼び出された総数をカウントしたい
その結果を都度 read.cgi の出力(html) に表示したい

こんなことなんですが、
0864root▲ ★
垢版 |
04/11/17 17:59:04ID:???
>>863
(回数-1)回、つまり「それまでにread.cgiが呼ばれた回数」なら、出来なくないかも。
でも、ちと重そうだなぁ。
0865FOX ★
垢版 |
04/11/17 18:01:49ID:???
負荷のことは置いておいて、
仕組みの話しなんですが、

exit(1234) ; とやったら bbs.cgi が 1234 を受け取り
出力に "1234" と入れたいってことなんです。

具体的な例として read.cgi のカウントを上げています
考えているのはもっと仮想化されたものです
0866FOX ★
垢版 |
04/11/17 18:02:48ID:???
>>865
bbs.cgi と read.cgi がごっちゃになってる。。。
read.cgi に読み直してくださいー
0867root▲ ★
垢版 |
04/11/17 18:05:26ID:???
ふうむ。

簡単なプロセス間通信をしたい、ってことですね。
それなら、DNSのフレームワークじゃないのを使ったほうがよさげですね。

しかも導入が簡単で、わりと軽いやつか。
0868root▲ ★
垢版 |
04/11/17 18:10:11ID:???
こんな感じの概念?

<< read.cgi >>
c = getcount(p);
printf("count = %d\n", c);

で、getcount() は別のサーバSで動いている
サーバプログラムsに何か情報pを伝えて、
サーバプログラムsはgetcount()に結果を戻し、
read.cgiはその結果を表示する。
0869FOX ★
垢版 |
04/11/17 18:26:19ID:???
そうなんです、

DNS のフレームワークでない方がいい?
コスト的、とくにサーバ間の通信ではとってもお得に感じるんだけど、、、
0870root▲ ★
垢版 |
04/11/17 18:51:21ID:???
>>869
はい、DNSはコスト低いし、らくちんですね。
どのシステムにも標準実装されてるし。

ちょっと会議入るんで、オフライン。
やりたいことはたぶん理解できました & 使えそうな仕組みはあるはずなので、
今夜 news19 をバージョンアップしながら、ぼちぼち考えてみます。
0871FOX ★
垢版 |
04/11/18 03:19:15ID:???
実際に実験したいな。

>>853 でご指摘のように返り値を取るために待っていることで当然
負荷は当然上がるとして、んじゃ一体どれくらい上がるのか。。。
いままでの経験から DNS を利用した方法は「他の仕組み」に比べて
極端にコストが安くかつ高速に実現かつ帯域的にもお得だった訳だけど
それを踏み潰してしまうほど、つまり「他の仕組み」にまけてしまうほど
負荷が上がってしまうのかどうか、
0872root▲ ★
垢版 |
04/11/18 03:34:23ID:???
UDP一発もの、サーバは単純な脊髄反射系 ってやつですからね。< DNS

ちょっともう今日はねむいんで、明日の昼以降の
アタマがはっきりしてる時にでも、実現可能性を調べてみるです。
今日の残りは、ちょっとだらだらするか、もう寝るかあたりをしようかなと。
0873FOX ★
垢版 |
04/11/18 03:41:55ID:???
あっ どもども
実際に返したいものは数値なんで
bbs.cgi(read.cgi) が受け取るのは
123.123.123.123 の形式で十分だったりします
0874動け動けウゴウゴ2ちゃんねる
垢版 |
04/11/27 23:04:58ID:jBKVx5iz
スレッド乱立報告スレッド4
http://qb5.2ch.net/test/read.cgi/sec2chd/1094737461/577

577 名前:名無しの報告[sage] 投稿日:04/11/27 21:26:47 ID:Z/TwD1fa
http://qb6.2ch.net/_403/c403.cgi
ここをウォッチングしていてわかったのですが、どうやら、
とかげのしっぽが解除されて再び発動するまでに、
10分のインターバルがあるようです

で、荒らしはその10分の間に田代砲のようなものを、
フル回転させてスレッドを乱立させているみたい


まじっすか?
0876動け動けウゴウゴ2ちゃんねる
垢版 |
04/11/27 23:19:57ID:xe8Ui4zS
甲) 2ちゃんねる各サーバ(60台くらい?)
 ↓a) 投稿ごとに BBS.2ch.net に通知
乙)BBS.2ch.net ここでいろいろ集計
 ↓b) おっ 攻撃だ! qb6 に通知
丙)qb6.2ch.net 攻撃者リストメンテ部
 ↓c) deny リスト作ったわん。全サーバに配信、配信。
丁) 2ちゃんねる各サーバ(59台くらい?) deny from で撃退

タイムラグはあるべね
0878動け動けウゴウゴ2ちゃんねる
垢版 |
04/12/04 12:03:23ID:A7RqzvXH
伝説の過疎板てここ?
0882root▲ ★
垢版 |
04/12/07 13:58:28ID:???
お、そうか。
昨日dnscacheを増やしたから、登録しないといかんぞ。

>>881
別途チェックをば。
0884桃色吐息 ★
垢版 |
04/12/07 14:36:31ID:???
pie.bbspink.com が参照しているDNSキャッシュサーバをBBS/BBX/BBYに登録しました。
0886/usr/local/bin/ch2 -o i686 ◆P8fXJj6wwo
垢版 |
05/01/01 10:46:50ID:WIMB6ZCT
転載 from 【実況】 live8/15/16 鯖 Part1
http://qb5.2ch.net/test/read.cgi/operate/1102681336/601-603

601 名前: FOX ★ [sage] 投稿日: 04/12/31 21:53:01 ID:???
うーん BBSも・・・

603 :root▲ ★ :04/12/31 21:55:52 ID:???
>>601
そですね。

BBSは、分散化かなぁ。
2台のサーバでBBSを半分ずつ受けるようにして、集計をやるしくみを別に作るとか。
0887動け動けウゴウゴ2ちゃんねる
垢版 |
05/01/02 05:13:17ID:KVKzYwM1
止まってる?

すずめ Ver 0.01 = 板別発言数 本日 2005/01/01
本日の発言数 1,654,742 (2005/01/01 5:9:51 現在)
0889FOX ★
垢版 |
05/01/25 05:32:32ID:???0
あふれているから
第2段を考えねばー
0890もみじ ★
垢版 |
05/02/02 15:41:07ID:???0
ちょっと、バーボンハウスのスレ立て数の値きつくしてみます、
0892root▲ ★
垢版 |
05/02/02 18:15:02ID:???0
sports8 → ex9 への移転を反映する必要があるですね。
ちょっと見てみましたが、複数箇所変更する必要がありそうなので、
FOXさんにおまかせすることにしよう、そうしよう。
0894もみじ ★
垢版 |
05/02/04 01:09:42ID:???0
なんか私が設定したときよりはるかにきつくなってますね、
それまで3ヶ月間変わってなかったくせに。
何か意図があるかもしれないけど、、
ちょっとさすがに変えすぎだと思うので少し戻しましょう。。
0895FOX ★
垢版 |
05/03/06 00:29:05ID:???0
live8 , live15 , live16 はスルーにしよう
そうしよう
0898▲ 某ソレ511
垢版 |
05/03/09 00:22:14ID:Jqgj2F0Y0
$data =~ s/(\w+)/<a href\=http:\/\/\1\.2ch\.net>\1<\/a>/g;

ぱっと思いつくのはこんなもんですかねぇ。
0899FOX ★
垢版 |
05/03/09 00:23:42ID:???0
おおっ

おつむが硬いとだめじゃのぉ
早速ぱくらせていただきます
0902 ◆OOcooooc..
垢版 |
NGNG

             ∩___∩
             |ノ⌒  ⌒ ヽ
             / ●)  ●) |
オツカレチャ━━━━━|   ( _●_)  ミ━━━━━ン♪
            彡、  |∪| 、`
              /  ヽノ  ヽ
             / 人    \\   彡
           ⊂´_/  )    ヽ__`⊃
                / 人 (
               (_ノ (_)
0905FOX ★
垢版 |
05/03/09 04:33:10ID:???0
おおっ

あとはどこで〆切るかですなぁ < PVあて

ちなみに通例どおり 2ch + bbspink でやります
(@pie なサーバだけになりますが、)
0908root▲ ★
垢版 |
05/03/12 17:03:35ID:???0
おお、、、。
PV計測対応の時のミスですね。

直しておきます。
0909root▲ ★
垢版 |
05/03/12 17:06:19ID:???0
crontabをバックアップから戻しました。
0911 ◆q3/STATvvc
垢版 |
05/03/13 08:45:06ID:K3BsTODp0
>>910
そういう仕様なので・・・・と思いましたが、とりあえず直しておきました
0913動け動けウゴウゴ2ちゃんねる
垢版 |
05/03/18 00:25:34ID:b8abD5630
すずめが板名参照できてリンクがついてれば
とりあえずサブカテゴリはいらない
0916 ◆BDFCNV1.to
垢版 |
2005/03/25(金) 21:12:38ID:D+RoBIL80
うむ
どらえもんの最後で欠測発生したようで、
0917root▲ ★
垢版 |
2005/03/26(土) 03:04:29ID:???0
>>916
例のやつですか、、、。超どばっと来ると、いまいちになるという。
0919root▲ ★
垢版 |
NGNG
あれ、確かに変ですね。
cronかな。みてきます。
0920root▲ ★
垢版 |
NGNG
cronすね。

夏時間への切り替えのところに、間違いがあるみたい。
今の設定:

# Apr
1 8 1 4 0 /home/ch2stats/BBS/kawasemi-d.cgi > /dev/null 2>&1
1 7 1 4 1-6 /home/ch2stats/BBS/kawasemi-d.cgi > /dev/null 2>&1
1 8 2 4 0-1 /home/ch2stats/BBS/kawasemi-d.cgi > /dev/null 2>&1
1 7 2 4 2-6 /home/ch2stats/BBS/kawasemi-d.cgi > /dev/null 2>&1
1 8 3 4 0-2 /home/ch2stats/BBS/kawasemi-d.cgi > /dev/null 2>&1
1 7 3 4 3-6 /home/ch2stats/BBS/kawasemi-d.cgi > /dev/null 2>&1
1 8 4 4 0-3 /home/ch2stats/BBS/kawasemi-d.cgi > /dev/null 2>&1
1 7 4 4 4-6 /home/ch2stats/BBS/kawasemi-d.cgi > /dev/null 2>&1
1 8 5 4 0-4 /home/ch2stats/BBS/kawasemi-d.cgi > /dev/null 2>&1
1 7 5 4 5-6 /home/ch2stats/BBS/kawasemi-d.cgi > /dev/null 2>&1
1 8 6 4 0-5 /home/ch2stats/BBS/kawasemi-d.cgi > /dev/null 2>&1
1 7 6 4 6 /home/ch2stats/BBS/kawasemi-d.cgi > /dev/null 2>&1
1 8 7-30 4 * /home/ch2stats/BBS/kawasemi-d.cgi > /dev/null 2>&1
0921 ◆cZfSunOs.U
垢版 |
2005/04/05(火) 21:21:51ID:XYPnkGfM0
http://www.freebsd.org/cgi/man.cgi?query=crontab&sektion=5
    Note: The day of a command's execution can be specified by two fields --
    day of month, and day of week. If both fields are restricted (ie, aren't
    *), the command will be run when either field matches the current time.
    For example, ``30 4 1,15 * 5'' would cause a command to be run at 4:30 am
    on the 1st and 15th of each month, plus every Friday.

ということで......

1 7 * * * [ "`/bin/date +%Z`" = PST ] && /home/ch2stats/BBS/kawasemi-d.cgi > /dev/null 2>&1
1 8 * * * [ "`/bin/date +%Z`" = PDT ] && /home/ch2stats/BBS/kawasemi-d.cgi > /dev/null 2>&1
0922root▲ ★
垢版 |
NGNG
>>921
どうも。こういうふうにしてみました。

# Jan-Mar
1 7 * 1-3 * /home/ch2stats/BBS/kawasemi-d.cgi > /dev/null 2>&1
# Apr
1 7 * 4 * [ "`/bin/date +%Z`" = "PST" ] && /home/ch2stats/BBS/kawasemi-d.cgi > /dev/null 2>&1
1 8 * 4 * [ "`/bin/date +%Z`" = "PDT" ] && /home/ch2stats/BBS/kawasemi-d.cgi > /dev/null 2>&1
# May-Sep
1 8 * 5-9 * /home/ch2stats/BBS/kawasemi-d.cgi > /dev/null 2>&1
# Oct
1 7 * 10 * [ "`/bin/date +%Z`" = "PST" ] && /home/ch2stats/BBS/kawasemi-d.cgi > /dev/null 2>&1
1 8 * 10 * [ "`/bin/date +%Z`" = "PDT" ] && /home/ch2stats/BBS/kawasemi-d.cgi > /dev/null 2>&1
# Nov-Dec
1 7 * 11-12 * /home/ch2stats/BBS/kawasemi-d.cgi > /dev/null 2>&1
0924動け動けウゴウゴ2ちゃんねる
垢版 |
2005/04/08(金) 04:52:00ID:w82M2zah0
FOX★がんばれ!
0925▲ 某ソレ511
垢版 |
2005/04/08(金) 05:11:33ID:slC1z2G90
あららん。いちおう僕が取ってたデータから
過日分も書いておきます。。

4/5 1,803,075
4/6 1,839,402
0926root▲ ★
垢版 |
NGNG
寝床で、これ見てしまった。

何が悪いんだろう、、、。
手で sh を起動してコマンドラインを流し込む分には平気だったんだが。
0927root▲ ★
垢版 |
NGNG
わかりました。

# Apr
1 7 * 4 * [ "`/bin/date +\%Z`" = "PST" ] && /home/ch2stats/BBS/kawasemi-d.cgi > /dev/null 2>&1
1 8 * 4 * [ "`/bin/date +\%Z`" = "PDT" ] && /home/ch2stats/BBS/kawasemi-d.cgi > /dev/null 2>&1

のように、% をエスケープしないとだめでした。

# Oct
1 7 * 10 * [ "`/bin/date +\%Z`" = "PST" ] && /home/ch2stats/BBS/kawasemi-d.cgi > /dev/null 2>&1
1 8 * 10 * [ "`/bin/date +\%Z`" = "PDT" ] && /home/ch2stats/BBS/kawasemi-d.cgi > /dev/null 2>&1

も、直しました。
0928root▲ ★
垢版 |
NGNG
man 5 crontab すると、ちゃんと書いてありました。

Percent-signs (%) in the command, unless
escaped with backslash (\), will be changed into newline characters, and
all data after the first % will be sent to the command as standard input.

ねます。おやすむ。
0931▲ 某ソレ511
垢版 |
2005/04/11(月) 09:43:25ID:aH4KWyMv0
む。昨日のはじめころからpc8鯖がカウントされていない予感。
0932root▲ ★
垢版 |
NGNG
>>931
リブートによりメモリディスク上のoklist.txtが先祖がえりしていました。
そうか、メモリディスクにしたから元のほうを更新しないとだめか。

直しておきました。
0933†正座会場 ◆jmq5OZqMNg
垢版 |
NGNG
 
0935root▲ ★
垢版 |
NGNG
さて、壺がきたということで、game系の大増産も一段落かしら。

というわけで、ここへの登録をよろしくです。
0945動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/24(火) 00:14:41ID:EWUpRluA0
やっぱ気になるから、ageちゃう。
0946動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/25(水) 13:20:25ID:oHu4y17p0
http://stats.2ch.net/suzume.cgi

鯖名クリックでそれぞれの板に飛べるようになりましたが(前からだっけ?)
bbspinkの板をクリックしても2chアドレスに飛ぼうとしてしまいますー
0950
垢版 |
2005/06/05(日) 16:38:11ID:ZtSfLE7D0
レス数が950を超えています。1000を超えると書き込みができなくなります。

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