2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

【技術者】難しい話をするスレ【Haskell】

1 :名無しさん:2014/05/22(木) 00:02:01.28
雑談スレで話すとROMっちゃうお嬢様方に配慮して
サーバーやプログラム等の難しい話はこっちでするスレ

84 :名無しさん:2014/06/24(火) 08:04:00.30
http://sweet.2ch.sc/test/read.cgi/patisserie/1399111309/239
直ったかな
http://sweet.2ch.sc/test/read.cgi/laplace/1400347531/286-290
http://c.2ch.sc/test/-/laplace/1400347531/286-290

85 :名無しさん:2014/06/24(火) 20:34:58.33
http://sweet.2ch.sc/test/read.cgi/patisserie/1397399478/161
>>79 のソース見ると dat をメモリにキャッシュしてるんですかね?
それだと確かにメモリ不足になりそう

とりあえず MaxRequestPerChild を小さめに設定しておけば
プロセスの肥大化は抑えられるだろうけど
根本的にはディスクにキャッシュするようにした方がいいかねぇ

86 :85:2014/06/24(火) 20:37:35.27
MaxRequestPerChild -> MaxRequestsPerChild

87 :がんじゃ兄貴 ◆U18g7nxod6:2014/06/24(火) 20:46:47.79 ID:uZ3oSSdVp
dat読み込んでは書き、を繰り返すの?
それはそれで応答速度が激烈に遅くなりそうな。
今のところたいしたアクセス数は無いだろうから子の生成サイクルを早めてやれば十分だと思う。
膨大なリクエスト裁かせるわけでもなし、そんなに負荷はかからんでしょ。

88 :名無しさん:2014/06/24(火) 20:56:31.03
いや、swapに乗るよかマシでしょう

そういう最適化は応答速度が下がってから考えたほうがいいのでは
最初から小細工しすぎると最適化の方向性を見失う気がするー

89 :名無しさん:2014/06/24(火) 20:59:58.04
キャッシュすべきスレが少なければメモリキャッシュでもいいんだけどね
しかし 2ch 全体でどれだけスレがあるか考えれば...

90 :がんじゃ兄貴 ◆U18g7nxod6:2014/06/24(火) 21:17:25.87 ID:uZ3oSSdVp
個人的にI/O周りの負荷はチューニングするにもハードウェアに多分に依存するので、避けたい。
とはいえ、携帯だと1スレ取得後の挙動がページングになると考えればファイルキャッシュも確かにいいかも、と考え直したお。
レス開いたときが遅くなるだけなら許容の範囲かなぁ。

メモリ読み出しにしてるならスレの数も関係してくるだろうが、見た感じ、そうではない気がする。
というか、PHPでそういうのって出来るモンなの?

91 :名無しさん:2014/06/24(火) 22:38:27.12 ID:4MfRC/9KY
apacheのprefork設定は、むむむさんスペシャルセッティング2の
【増量 6/15 13:55】をベースに少し修正した物を使っています。
# 2014/05/11 2:55
# ref:http://dokuosan.net/zousan/nikki170.html
<IfModule prefork.c>
StartServers 1024
MinSpareServers 1024
MaxSpareServers 2048
ServerLimit 2048
MaxClients 2048
MaxRequestsPerChild 10000
MaxMemFree 2000
</IfModule>

92 :名無しさん:2014/06/25(水) 01:03:02.63
>>91
それは普通の掲示板サーバ用の設定だから
PHP 使わない前提なんだよね
PHP スクリプトでプロセスがどんどん太るとなれば
MaxRequestsPerChild は 256〜512 ぐらいにしたらどうだろう?

93 :名無しさん:2014/06/25(水) 01:37:39.70 ID:hS5VL2Q4F
>>92
MaxRequestsPerChild を512にして見ました。

94 :名無しさん:2014/06/25(水) 05:54:13.58 ID:fGylYS2GN
>>70
実況系を考えてましたー
確かに過去ログってデータを見るだけだったら必要性は今後どんどん低くなってきますね。
コスト度外視ってのは妄想ですw けど意外と安く上がるんじゃないかな。。。

>全鯖が同一筐体にぶち込まれるという意味からチェックポイントどうするとかRAIDでどう凌ぐとか。
確かにそうですね。 経験上安定性に関しては...
SSD RAID10, 6, 5 > HDD/SAS RAID 10, 6, 5 > SSD 単体 > HDD 単体 > SSD/HDD/SAS RAID0, 1
です。 (データ無しの主観ですがw)

>あれ?そうなるとテキストべた書きが基本の2chでSAN使うメリットって結構少ないかも。
最近流行のWordPressの中規模サイトを仮想化された環境で使うには
SANのメリットがめちゃくちゃあるんですが
確かに2chだとコスト>メリット になっちゃいそうですね.

95 :名無しさん:2014/06/25(水) 07:26:14.11 ID:hS5VL2Q4F
# free
total used free shared buffers cached
Mem: 4050868 4015436 35432 0 3160 24928
-/+ buffers/cache: 3987348 63520
Swap: 2048276 524436 1523840

%CPU %MEM VSZ RSS  STAT TIME COMMAND
0.0 0.3  285036 14664  S  0:01 httpd
こんな感じ。

96 :名無しさん:2014/06/25(水) 08:38:08.64
>>95
すでにスワップしちゃってるのか
てか RSS が 14.3MB の httpd が 1024 個となると...
これぐらいに絞った方がいいかもね

StartServers 192
MinSpareServers 192
MaxSpareServers 256
ServerLimit 256
MaxClients 256

97 :名無しさん:2014/06/25(水) 14:13:14.52 ID:mM652fFwJ
<IfModule prefork.c>
StartServers 1024
MinSpareServers 703
MaxSpareServers 1024
ServerLimit 1024
MaxClients 1024
MaxRequestsPerChild 256
MaxMemFree 2000
</IfModule>
こんな感じにしてみました。

98 :がんじゃ兄貴 ◆U18g7nxod6:2014/06/25(水) 22:15:35.23 ID:0vv0/WBrA
それだと基本プロセスは1024固定になるからMaxMemFreeを減らしてもいいかも。

99 :名無しさん:2014/06/26(木) 00:19:57.69
c はまだ苦しいのかな...反応がなかなか返ってこない
(ping の反応は返ってくるけど)
1000 程度の同時接続数をさばかねばならず
httpd プロセス数を減らせないなら RAM 増設とか必要かもね

www の方は重さが消失して軽快になったかな
昨晩までと比べLAは高めに推移してるけど
これは今まで入り口で詰まってたのが
きちんと掃けるようになって「“正しく”LAが上がってる」
状態かな(この表現は昔むむむさんが使ってた記憶がある)

100 :名無しさん:2014/06/26(木) 02:53:22.31 ID:molEG5Enw
<IfModule prefork.c>
StartServers 512
MinSpareServers 512
MaxSpareServers 1024
ServerLimit 1024
MaxClients 1024
MaxRequestsPerChild 256
MaxMemFree 1024
</IfModule>
こうしてみました。
# 別の考えられる原因(crontab)も修正してみました。

101 :名無しさん:2014/06/26(木) 03:24:57.41 ID:molEG5Enw
今のところこんな感じです。
#free
total used free shared buffers cached
Mem: 4050868 1355584 2695284 0 94532 175532
-/+ buffers/cache: 1085520 2965348
Swap: 2048276 0 2048276

102 :がんじゃ兄貴 ◆U18g7nxod6:2014/06/26(木) 06:49:43.89 ID:9HGjhSAnL
StartServers、MaxSpareServersとMaxRequestsPerChildを下げた影響かと。
fork→killとプロセス再起動のオーバーヘッドでLAがあがる。
swapなくなったなら「正しく」と表現してもいいのかな。
けど、応答が返ってこないならそれはそれでまずいか・・・。

1000は必要であれば、php.iniのほうを弄るのはどうだろう。
MaxRequestsPerChildを512か1024あたりまで引き上げて、php.iniでメモリを下げる。

103 :99:2014/06/26(木) 07:54:10.19
>>101
>>95と比べるとスワップもなくなり余裕でてきましたね

>>102
>>99の後半は c.2ch.sc でなく www.2ch.sc について
こっちも今まで重かったからね

104 :がんじゃ兄貴 ◆U18g7nxod6:2014/06/26(木) 12:42:05.64 ID:10MS+NrtM
>>103
おっと、失礼

そうすると同じ設定にしてwwwとcで結果に違いがあるということかな。
c側のLAもあがったんだろうか。
もしそうなら、リクエストの捌き方は多分正解だがガラケー向けのアプリケーション仕様が足を引っ張ってる可能性が考えられるなぁ。
前レスで誰かが言ってたファイルキャッシュは実装できないのかな。

105 :名無しさん:2014/06/26(木) 13:16:47.62
単純に昨日はwwwに攻撃来なかっただけじゃないかなぁ

106 :名無しさん:2014/06/26(木) 15:14:30.59 ID:molEG5Enw
c.2ch.sc と www.2ch.sc は多分設定が違うと思います。
# 片方は、どんな設定か分からないので。

107 :名無しさん:2014/06/26(木) 17:05:29.12
www はこんな感じで設定変更しました

sysctl:
    net.core.somaxconn デフォルト(128) -> 1024

httpd:
    ListenBacklog デフォルト(511) -> 1024
    MPM prefork -> event
        <IfModule event.c>
        ServerLimit         32
        StartServers         2
        MaxClients         1024
        MinSpareThreads     32
        MaxSpareThreads     96
        ThreadsPerChild     32
        MaxRequestsPerChild 65535
        </IfModule>
    mod_deflate 有効化
        FilterDeclare deflate CONTENT_SET
        FilterProvider deflate DEFLATE Content-Type /^text|(?:(?:ecma|java)script|xml)$/
        FilterChain deflate

108 :名無しさん:2014/06/26(木) 18:48:49.30 ID:wG48HxGJY
学校法人スバルが丘学園 神戸第一高等学校の沿革 tel:078-242-4811
1958年(昭和33年) - 普通科設置。
1961年(昭和36年) - 商業科設置。
1971年(昭和46年) - 情報処理科設置。
1995年(平成7年) - 国際経済コース、進学コース、体育コース、芸術コース設置。
1997年(平成9年) - 介護福祉コース設置。
1998年(平成10年) - 法人名を「学校法人塩原女子高等学校」と改称。
1999年(平成11年) - 調理師コース設置、家庭科をファッションコースに改称。
2000年(平成12年) - 国際経済・情報処理・介護福祉・調理師の各コースを男女共学とする(校名を「スバルが丘学園 神戸第一高等学校」と改称)。
2004年(平成16年) - コースを製菓・調理師・商業特進・情報処理・ファッションデザイン・介護福祉・普通の各7コースを設置。
2009年(平成21年) - 神戸西高等学校跡地を取得、北神戸キャンパスとなる。
2018年(平成30年)-ジェームズウェッブ宇宙望遠鏡の打ち上げにともない、普通科航空宇宙コースが設置される(予定)。

109 :名無しさん:2014/06/26(木) 20:16:31.96 ID:molEG5Enw
スクリプトの関係で
/usr/sbin/httpd.event
を使用する事ができない感じですね。
一応、キャッシュも考えていますが
キャッシュを行うと(多分)リアルタイムに表示が
出来ないような可能性があるので出来るだけ避けたいと思います。

110 :名無しさん:2014/06/26(木) 20:41:46.71 ID:0ctfYkw34
日中はトラブルなかったのですが夕方よりこんな感じなのを報告

80:2014/06/26(木) 19:26:52.32 ID:VXgl9SVRl
19:23 c.2ch.scで広場を見ようとしたら502errorが一回だけ出た
リロードしたら見れたけど
81:2014/06/26(木) 20:02:27.76
19:18から数回111や500 errorで繋がらない事があるっぽい
接続が遅くなったりは無い

111 :名無しさん:2014/06/26(木) 20:59:28.32
現状こんな感じです

@www
netstat -an | awk '/49\.212\.27\.72:80/ {print $6}' | sort | uniq -c
      1 CLOSE_WAIT
      1 CLOSING
    306 ESTABLISHED
      5 FIN_WAIT1
    214 FIN_WAIT2
      8 LAST_ACK
    214 SYN_RECV
    756 TIME_WAIT

@sweet
netstat -an | awk '/206\.225\.92\.84\.80/ {print $6}' | sort | uniq -c
  15 ESTABLISHED
   2 FIN_WAIT_1
   2 FIN_WAIT_2
 119 TIME_WAIT

112 :名無しさん:2014/06/26(木) 21:08:26.02 ID:molEG5Enw
現在は、こんな感じです。
@c
netstat -an | awk '/49\.212\.27\.62:80/ {print $6}' | sort | uniq -c
5 ESTABLISHED
11 TIME_WAIT

113 :名無しさん:2014/06/26(木) 21:18:10.08 ID:molEG5Enw
/etc/sysctl.conf の変更点@cです。
# Add for block of attack 2014/5/8

# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1
# Ignore ICMP broadcats
net.ipv4.icmp_echo_ignore_broadcasts = 1
# Ignore bugus ICMP errors
net.ipv4.icmp_ignore_bogus_error_responses = 1
# disable to source routing packet
net.ipv4.conf.all.accept_source_route = 0
# MAX of socket pool
net.core.somaxconn = 30720
# MAX of socket backend pool
net.core.netdev_max_backlog = 30720
# SYN/ACK max socket
net.ipv4.tcp_max_syn_backlog = 30720
# keepalive time
net.ipv4.tcp_keepalive_time = 20
net.ipv4.tcp_keepalive_intvl = 4
net.ipv4.tcp_keepalive_probes = 5
# Time_Wait
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 10
# Reboot On KernelPanic
kernel.panic = 5
# OOM -> KernelPanic
vm.panic_on_oom = 1

114 :名無しさん:2014/06/27(金) 07:16:41.73 ID:ziFOWShzi
メモ書き
datファイルをキャッシュしてみた結果
2014/06/26 20:01から2014/06/27 7:03 までに確認出来る範囲で
キャッシュされた数とサイズ
キャッシュされたdat数:3668 (422Mib - 12664B)
キャッシュされたスクリプト数:6 (12664B)

# 気のせいか
# *** glibc detected *** httpd: double free or corruption (fasttop):
# が何度か発生しているような。。。

115 :名無しさん:2014/06/27(金) 08:33:33.05
関連?
https://bugs.php.net/bug.php?id=51319
  -> https://bugs.php.net/bug.php?id=47768
    -> http://news.php.net/php.internals/43357

116 :名無しさん:2014/06/28(土) 20:52:58.11
PHP と worker/event MPM を共存させる手としてこんなのも

mod_fcgid http://httpd.apache.org/mod_fcgid/

平たく言うと SpeedyCGI 同様に CGI プロセスが立ち上がったままになる
SpeedyCGI が Perl 専用なのに対してこれは PHP 等でも使える

117 :名無しさん:2014/06/29(日) 01:18:33.01
そこまでするなら、nginxでphp-fcgi使ったほうが楽なのでは
と話を蒸し返してみる

118 :名無しさん:2014/06/29(日) 02:36:27.64
掲示板サーバ以外ならそれも選択肢になりうるだろうけど
掲示板サーバについては >>42-47 という話に戻る
もっとも掲示板サーバでは元々 PHP 使ってないっぽいから
PHP 使うのはそれ以外のサーバなんだろうけど

119 :名無しさん:2014/07/01(火) 07:53:01.71 ID:arXzZPHNS
Perl with GD でAASを作ってみようかなぁと。

120 :アップデート告知ロボ ★:2014/07/07(月) 13:44:35.88 ID:???
http://sweet.2ch.sc/_logs/
http://ai.2ch.sc/_logs/

気づいた時だけスレの人が来ていると聞いて。。。
こういうデータは需要がありますか?

121 :名無しさん:2014/07/07(月) 20:41:03.00
あれ?ひょっとして、さびしがり屋?

122 :名無しさん:2014/07/07(月) 23:07:11.01
>>120
お、F15/22のログとuptimeログが!乙です乙です
規制リストは非公開なのね

とりっくさんはscも見てる気がするのでグラフ化を淡く期待^^

123 :名無しさん:2014/07/07(月) 23:21:07.49
http://sweet.2ch.sc/uptime.svg
グラフはこれでよくない?

124 :名無しさん:2014/07/07(月) 23:34:49.74
>>123
公式グラフ忘れてた(テヘペロ
失礼しました

125 :名無しさん:2014/07/12(土) 01:18:52.33
【連絡】2ちゃんねる専用ブラウザ開発者の皆さまへ
http://anago.2ch.sc/test/read.cgi/software/1405086867/
>2ch.netのdatの取得方法、及び利用規約が近日変更される予定です。
>仕様が一般公開される可能性はありますが、登録制になる見込みです。

登録制にしてもどういう仕様にしてくるだろうか、自分ならどう実装するだろう・・

126 :名無しさん:2014/07/12(土) 02:56:07.25
自分ならそんなことやる気しないが
どうしてもやるなら SSL クライアント証明書で認証するかな
しかし専ブラのアクセスもクローラのアクセスも
本質的にやってることは同じだから
クローラだけを選択的に排除なんて不可能だと思う
証明書だってどっかからコッソリ入手すりゃいいだけだし

というか dat 読みを制限しても
read.cgi が今まで通りならそっちから読めばいいし
そっちも制限するなら会員制サイトにするか
read.cgi 廃止して登録専ブラしか使えなくするか

どっちにしろ自爆という未来しか見えないな...

127 :126:2014/07/12(土) 06:27:00.08
というか「クロール対策をどうするか」という意味で
自分ならどうするか?ということなら
従来との互換性を捨てるようなこんなバカな方向でなく
バーボンを洗練させる方向でやるだろうな

それも「クロールを根絶させる」というのは不可能と思うから
あくまで「DoS 防御」が主目的になる
「クロールを根絶させてくれ」という要求に対しては
「無理なものは無理」と答えるしかない

128 :がんじゃ兄貴 ◆U18g7nxod6:2014/07/13(日) 22:51:33.06 ID:U+qFxE3TM
>>125
OAuth認証でトークン発行・・・・・かな。流行に乗っかって。Code猿そのあたり好きそうだし。
クライアント証明書もいいけど、ユーザ側の負担を考えると現実的ではないかも。

どちらにせよクローラ対策で専ブラを登録制にするって言う図式がちょっと理解できない。
専ブラ登録制→ダウンロードするヤツの個人情報を徴収する→Jimに引き渡す
とかいう制度を作るなら効果はあるだろうが、同時に一般ユーザも失うだろうしな。

129 :名無しさん:2014/07/14(月) 05:28:00.61
どうも >>125 は専ブラに広告載せるとかするのが
主目的っぽいな(クロール対策も含まれるだろうけど)

クロール対策としては hope で Range や If-Modified-Since
が無視されてた件と関連があるっぽいな
dat へのアクセスに細工するようにしたんだろう
これも専ブラで差分取得ができなくなったりして gdgd な感じだが

130 :がんじゃ兄貴 ◆U18g7nxod6:2014/07/14(月) 06:13:34.93 ID:9Tn//yGb1
datに触れないようにしますた(^q^)→了解れす。read.cgiから読むです(^q^)

↑こうなるだけかと。

131 :アップデート告知ロボ ★:2014/08/03(日) 23:00:24.11 ID:???
c.2ch.scでもuptimeの計測を始めました。
http://c.2ch.sc/_logs/ にuptimeのログがあります。

132 :名無しさん:2014/08/03(日) 23:13:21.39
ロボちん乙おつ

133 :p221109137183.ppp1.prin.ne.jp 【日本】:2014/08/03(日) 23:43:48.88 ID:C8eGCd6EH
おつです、、
思ってたよりLA高め?すぺっこ知らないですが、、
やはり見てるだけな層は結構居られるんでしょうか、、、
Mozilla/3.0(WILLCOM;SANYO/WX310SA/2;1/1/C128) NetFront/3.3

134 :名無しさん:2014/08/04(月) 00:59:54.21
cちゃんは時々応答無くなるしなんだろう

135 :名無しさん:2014/08/04(月) 07:19:29.52 ID:F55O5Ak9m
とりあえず、今のcのスペックです。
ディスク容量:120GB (HDD 20GB + HDD 100GB)
メモリ:4GB
CPU:仮想4コア

メモリの使用率はこんな感じです。

total used free shared buffers cached
Mem: 4050868 4025004 25864 0 9168 60584
-/+ buffers/cache: 3955252 95616
Swap: 2048276 862356 1185920

136 :◆cZfSunOs.U:2014/08/04(月) 08:12:29.97 ID:FYi6divvk
>>131 入れました http://sweet.2ch.sc/uptime.svg
# 昨日までの分が入ってないのはご容赦を...

137 :名無しさん:2014/08/05(火) 23:15:45.80 ID:gNddStsPi
http://wc2014.2ch.net/test/read.cgi/operatex/1407139098/137-138

138 :◆cZfSunOs.U:2014/08/06(水) 08:14:30.07 ID:qGUfOV+W3
まぁ何というか...
ACS もおそらく同様のスクリプトなんでしょうね
dat へのアクセスをそういうスクリプトで処理していれば
重くなるのも無理はないかと...

139 :名無しさん:2014/08/06(水) 11:20:55.33 ID:5XemytQsB
むしろこれがACSの学習用ログファイル生成スクリプトじゃないだろうか?

140 :名無しさん:2014/08/06(水) 18:38:52.96 ID:jOR/BX0FB
http://sweet.2ch.sc/test/read.cgi/laplace/1406792208/
から誘導されてきました。

>>139
http://sweet.2ch.sc/test/read.cgi/laplace/1406792208/321,324,330,333,335
ログが学習用に流用されてる可能性も無くはない(日付無いからむりげだが)あるけど、
ACSは可動済みらしいから別件かもよ。

141 :【日本】:2014/08/12(火) 17:11:55.56 ID:owNd/GkHI
>>131
ロボさんロボさん403で見れなくなりました、、、
意図的なパーミッション変更ですか?

142 :名無しさん:2014/08/12(火) 17:39:53.83
http://c.2ch.sc/_logs/UP_20140812.txt
直接指定なら見れるんでない

143 :【日本】:2014/08/12(火) 17:57:34.31 ID:BXmteVD5g
おぉ、ありがとうございます、、私のもしもし.svg見れなくログで確認でして、、、
メモしときます、、

cが16:58分頃つながらなく鯖の様子はと思った次第、、
17時には繋がったのですが、、、

144 :アップデート告知ロボ ★:2014/08/13(水) 20:05:07.39 ID:???
>>141
修正しました。
# ログのお掃除スクリプトが.htaccess自体も消していたようなので
# 例外に追加しました。

145 :【日本】:2014/08/13(水) 20:33:15.34 ID:96UlnQi0+
見れる様になりました、、
ロボさんおつおつです

146 :名無しさん:2014/08/13(水) 21:44:07.33 ID:eGx0DJ0Yz
お掃除ロボが有能すぎたのか・・

147 :◆cZfSunOs.U:2014/08/14(木) 09:40:00.55 ID:Pepeek5Sw
掲示板サーバの時計の微妙なズレが気になってたので見てみたら
日に一回 ntpdate するような設定になってたので
ntpd 稼働に変更しました

# DRDoS 等は対策済み

148 :名無しさん:2014/08/15(金) 09:22:11.94
PHPでcgi叩いてdat形式で返す変換串を作ってるのだが、整形がうまくいかない

$html = file($url);
$cnt = count( $html );
for( $i=0;$i<$cnt;$i++ ){
$html[$i] = preg_replace ('#(<a\s.{0,}?href=".+?".{0,}?>)|(</a>)#mi',"",$html[$i]);
preg_match('#(<dt>([0-9]+).+?(?:"mailto:(.+?)">)?<b>(.+?)</b>(?:</font>|</a>) ?:(.*?)<dd> ?(.*?)(<br><br>)$)#mi',$html[$i],$dat);
echo "$dat[3]<>$dat[2]<>$dat[4]<>$dat[5]<>\n";
}

149 :名無しさん:2014/08/15(金) 09:28:29.71
>>148
echo "$dat[4]<>$dat[3]<>$dat[5]<>$dat[6]<>\n";
だった。
print_r($dat);
と出力しても
Array ( )
と空っぽで返されてるみたいだ

150 :◆cZfSunOs.U:2014/08/15(金) 11:27:30.48 ID:J2Z1YGPwc
>>148 パッと見た感じで... preg_replace() で <a> タグ消すと
その後の preg_match() で mailto:〜 が取り出せないのでは?

151 :名無しさん:2014/08/15(金) 15:23:50.42
>>150
ありがとうございます。
ご指摘の点を修正しましたが、相変わらずでした。

$html = file($url);
$cnt = count( $html );
for( $i=0;$i<$cnt;$i++ ){
str_replace(array("\r\n","\r","\n"),"", $html[$i]);
preg_match('#<dt>([0-9]+).+?(?:"mailto:(.+?)">)?<b>(.+?)</b>(?:</font>|</a>) ?:(.*?)<dd> ?(.*?)(<br><br>)$#mi', $html[$i], $dat);
$dat[5] = preg_replace ('#(<a\s.{0,}?href=".+?".{0,}?>)|(</a>)#mi',"",$dat[5]);
echo "$dat[3]<>$dat[2]<>$dat[4]<>$dat[5]<>\n";
}

152 :◆cZfSunOs.U:2014/08/15(金) 20:08:00.54 ID:J2Z1YGPwc
>>151 まず最初は #^<dt>(.*)<dd>(.*)$#
のような大まかな抽出から始めてみて
そこから細かい単位でも抽出できるよう
徐々に正規表現を書き加えていけば
どこで引っかかっているかわかるのではないかと...

153 :名無しさん:2014/08/15(金) 20:31:40.87
>>152
なるほど。分かりました

実は正規表現苦手で、ネットのコピペだったりするんです
チェカサイトとかでのテストはクリアしたのですが…

154 :◆GlejOuo7cU:2014/08/15(金) 21:13:53.97 ID:kUxu/mfMf
見ていて気になったので適当に修正を入れてみた。
空欄(null)が表示されるのが気持ち悪いのでフィルターリングをつけてみた。

$url = "http://sweet.2ch.sc/test/read.cgi/laplace/1400684521/22";
$html = file($url);
$cnt = count( $html );
for( $i=0;$i<$cnt;$i++ ){
str_replace(array("\r\n","\r","\n"),"", $html[$i]);
preg_match('#<dt>([0-9]+).+?(?:"mailto:(.+?)">)?<b>(.+?)</b>(?:</font>|</a>) ?:(.*?)<dd> ?(.*?)(<br><br>)$#mi', $html[$i], $dat);
$dat[5] = preg_replace ('#(<a\s.{0,}?href=".+?".{0,}?>)|(</a>)#mi',"",$dat[5]);
if($dat['3']!=null){//名前
$dat_n['name']=$dat['3'];
}
if($dat['2']!=null){//メール
$dat_n['mail']=$dat['2'];
}
if($dat['4']!=null){//曜日
$dat_n['day']=$dat['4'];
}
if($dat['5']!=null){//本文
$dat_n['txt']=$dat['5'];
}
}
echo $dat_n['name']."<>".$dat_n['mail']."<>".$dat_n['day']."<>".$dat_n['txt']."<>\n";

155 :◆GlejOuo7cU:2014/08/15(金) 21:18:44.17 ID:kUxu/mfMf
ここも参考になるかも。。。
2chスレをスクレイピングする方法
http://qiita.com/murapon/items/5c7ec6568bc56799da99

156 :名無しさん:2014/08/16(土) 11:24:40.73
>>154,155
アドバイスありがとうございます。参考にさせてもらいました

お陰さまで完成しました。

157 :名無しさん:2014/08/16(土) 11:27:23.09
<?PHP
header("Content-type: text/plain; charset=UTF-8");
$url = (preg_match('/^(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/', $_SERVER["QUERY_STRING"])) ? $_SERVER["QUERY_STRING"] : "" ;
if($url) :
$html = file($url);
$cnt = count( $html );
for( $i=0;$i<$cnt;$i++ ) {
$html[$i] = mb_convert_encoding($html[$i], "UTF-8", "SJIS");
preg_match('#<title>(.+)</title>#is', $html[$i], $title);
if($title[1]) break;
}
for( $i;$i<$cnt;$i++ )
if(preg_match('#<dl class=\"thread\">#is', $html[$i])) break;
for( $i;$i<$cnt;$i++ ) :
if(preg_match('#</dl>#is', $html[$i])) break;
$html[$i] = mb_convert_encoding($html[$i], "UTF-8", "SJIS");
str_replace(array("\r\n","\r","\n"),"", $html[$i]);
preg_match('#<dt>(\d+).+?(?:"mailto:(.+?)">)?<b>(.+?)</b>(?:</font>|</a>) ?:(.*?)<dd>#is', $html[$i], $dat);
preg_match('#<dd>(.+)<br><br>#is', $html[$i], $data);
if($dat || $data) :
$data[1] = preg_replace ('#<a\s.{0,}?href=".+?".{0,}?>|</a>#is',"",$data[1]);
str_replace("<br>","<br />", $data[1]);
if($dat[1] == 1) echo "$dat[3]<>$dat[2]<>$dat[4]<>$data[1]<>$title[1]\n";
else echo "$dat[3]<>$dat[2]<>$dat[4]<>$data[1]<>\n";
endif;
endfor;
endif;
?>

158 :◆YSALoS//91mH:2014/08/16(土) 11:40:31.39
>>157
インデント修正。
<?PHP
header("Content-type: text/plain; charset=UTF-8");
$url = (preg_match('/^(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/', $_SERVER["QUERY_STRING"])) ? $_SERVER["QUERY_STRING"] : "" ;
if($url) :
$html = file($url);
$cnt = count($html);
for($i=0;$i<$cnt;$i++) {
$html[$i] = mb_convert_encoding($html[$i], "UTF-8", "SJIS");
preg_match('#<title>(.+)</title>#is', $html[$i], $title);
if($title[1]) break;
}
for($i;$i<$cnt;$i++)
if(preg_match('#<dl class=\"thread\">#is', $html[$i])) break;
for($i;$i<$cnt;$i++) :
if(preg_match('#</dl>#is', $html[$i])) break;
$html[$i] = mb_convert_encoding($html[$i], "UTF-8", "SJIS");
str_replace(array("\r\n","\r","\n"),"", $html[$i]);
preg_match('#<dt>(\d+).+?(?:"mailto:(.+?)">)?<b>(.+?)</b>(?:</font>|</a>) ?:(.*?)<dd>#is', $html[$i], $dat);
preg_match('#<dd>(.+)<br><br>#is', $html[$i], $data);
if($dat || $data) :
$data[1] = preg_replace ('#<a\s.{0,}?href=".+?".{0,}?>|</a>#is',"",$data[1]);
str_replace("<br>","<br />", $data[1]);
if($dat[1] == 1) echo "$dat[3]<>$dat[2]<>$dat[4]<>$data[1]<>$title[1]\n";
else echo "$dat[3]<>$dat[2]<>$dat[4]<>$data[1]<>\n";
endif;
endfor;
endif;
?>

159 :名無しさん:2014/08/20(水) 02:03:39.62
難しい話ではないけど観察スレよりはこっちかなと

LSN(Large scale NAT)/CGN(Carrier Grade NAT)はIPv6が普及するまでの
過渡的なものと言われてたけど、IPv6の普及は遅々として進まず、スマホキャリア
ではそれなりに使われているようす
規模は小さいながらCATVインターネットサービスでは10年以上前から同じような
もんが使われてました

あっちで未承諾さんたちがやってる自動短期BBQは5年前なら歓迎されたかも
しれませんけど、現在はLSNを採用しているキャリアのスマホで荒らす人がいると
巻き添えが多発して阿鼻叫喚

でもってIP・リモホベースだけでなく、ユーザーを個々に識別する規制もしなきゃ
いかんよねと

その手段として●だのbeだの忍法帖だのが使われたけど……、
・●/ろーにん→メアドとお金を担保
・be→メアドを担保(特定板のスレ立てにはbeポインヨも担保)
・忍法帖→レベル育成の時間と手間を担保

どれも決め手にはならなかったけど、壮大な実験の結果は参考になる
SCはまだ人が少ないので荒らし対策に注力する必要に迫られてないとは思うが
なんとかうまい仕組みはできないものか

# クローラーを目の敵にするとあれ

160 :名無しさん:2014/08/20(水) 06:39:47.83
とりあえず
スマホ酉 → captchaの人間証明で手間を取らせてるよね
あと、自動焼きシステムがある程度弾いてくれてるはず

161 :名無しさん:2014/08/24(日) 20:15:40.35
ゲームプレイでユーザー認証――CAPTCHA代替サービスが登場
http://www.itmedia.co.jp/news/articles/1205/23/news044.html

162 :名無しさん:2014/08/24(日) 21:59:54.98 ID:rHPtqz+3w
扱える言語がPHPなんだけど、
9chを公開串リストを使って高速クロールすることは可能?
例えば串リストを板ごとに作成してから、スレ毎にランダムに通して取得とか

163 :名無しさん:2014/08/24(日) 22:40:24.55 ID:GB9jyc9Y2
可能かもしれないが褒められた事じゃないから止めきなさい

164 :名無しさん:2014/08/24(日) 22:57:57.43
公開リストだと BB なんちゃらにくべられそうな

それはそうと今の sc ではスマホゲーユーザが一大勢力になってるし
CAPTCHA に代えてゲーム認証ってのも悪くないかもねぇ

165 :名無しさん:2014/08/24(日) 23:00:53.04 ID:rHPtqz+3w
そっかー
じゃ止めておくよ

公開串でボボンに生ホストが引っかかるかどうかだけは気になる

166 :名無しさん:2014/08/25(月) 01:04:43.42 ID:YSmN69CnX
>>165
それこそ一度専ブラに串刺してアクセスしてみりゃ判ることでは?

167 :名無しさん:2014/08/28(木) 23:39:00.37
CAPTCHA は昨年 pink で導入してユーザ激減したなんて話もあるし
荒らしだけでなく普通のユーザにとっても障壁になっていることは考えられる

ただ sc ではスマホによる荒らしがひどくてモバイル認証を導入した経緯もあり
代替策もなしに CAPTCHA を単純に無くすということはできない

というところですね

168 :名無しさん:2014/08/29(金) 05:21:43.16
とりあえず mgate.cgi の画面で
Be・P2 にリンク張ったりして
それらに誘導しやすくするとか

169 :名無しさん:2014/08/29(金) 23:07:38.93
Ajaxで何か出来ないかなーと思ってた所に(>>7)
まとめツールが無いと聞いたのでjsで作ってみた
サーバー用意する必要が無いから気楽に作れて良い

http://jsfiddle.net/ozu8uqcb/show/
ソース:http://jsfiddle.net/ozu8uqcb/

170 :名無しさん:2014/08/30(土) 00:35:19.79
>>169
おお!!すげー!

171 :名無しさん:2014/08/30(土) 08:09:08.87 ID:ljeE8tOfH
>>169
保存、保存
削除依頼のためにまとめるならURLはこっちの方が良いかもです

http://nozomi.2ch.sc/test/read.cgi/doujin/1407418938/657+662+664+665+669+670+675+676+679+691

172 :名無しさん:2014/08/30(土) 23:01:05.17
>>171
http://jsfiddle.net/ozu8uqcb/1/show/
IDまとめと URLまとめが出来る様に

ID毎にURLまとめた方が良いのかな?
よく知らないので・・

173 :名無しさん:2014/08/31(日) 05:32:38.57 ID:xjjIJYATL
>>172
ありがとうです。

>>171の場合だとこの手順であってるでしょうか。

1) URLsに http://nozomi.2ch.sc/test/read.cgi/doujin/1407418938/ を入力
2) キーワードに : : : : : を入力
3) IDまとめで抽出
4) その出力をURLsにペースト
5) URLまとめで削除依頼用に整形


> ID毎にURLまとめた方が良いのかな?

下記のようにレス番の順番で出力していただければ大丈夫ですよ。※こちらを見る前に手作業でやりました(涙

★iPhone:iPhone[重要削除]
http://macaron.2ch.sc/test/read.cgi/saku2/1403310276/6


もしよろしければ下記スレで紹介させていただきたいのですが、いかがでしょうか。

★質問&雑談スレッド
http://macaron.2ch.sc/test/read.cgi/effacer/1397232189/

174 :名無しさん:2014/08/31(日) 15:37:34.14
期待通りの出力が得られたのなら合ってるんだと思います
仕様も紹介も改造も自由に適当に

175 :名無しさん:2014/08/31(日) 18:34:04.00 ID:xjjIJYATL
>>174
了解です。

> 仕様も紹介も改造も自由に適当に

ありがとうございます。さっそく宣伝してきましたです。

176 :LAN:2014/09/03(水) 19:50:32.10
加トちゃんケンちゃんごきげんテレビ(第65〜88回 第30〜53回)を探しています。どなたかお持ちのかたいませんか?どなたかいましたらlike1dream@ezweb.ne.jpにご連絡ください。

177 :名無しさん:2014/09/03(水) 20:56:26.10 ID:L8YvKJZmY
メアド見るとauの携帯っぽいけど
もしもし全キャリアの規制を厳しくしないでほしいです
auはしょうがないかもしれないけど
http://logsoku.com/r/ff/1294635497/32
docomo iモードアプリはアプリをダウンロードした鯖としか通信できない仕様なのでこういうことは起こりにくくなっています
どうかよろしくお願いします

178 :名無しさん:2014/09/03(水) 23:37:42.67 ID:yZQXMz0Ro
docomoガラケーですが
23:05 c.2ch.scとhttp://c.2ch.sc/_logs/
「設定時間内に接続できませんでした」が出た
23:22 c.2ch.sc/_logs/がやっと見れた
http://c.2ch.sc/_logs/UP_20140903.txt
なんだかお高いです

179 :名無しさん:2014/09/04(木) 23:32:35.26 ID:JFcTTq6xn
http://c.2ch.sc/_logs/UP_20140904.txt

2014/09/04 14:50:01 LA= 14:50:01 up 15:28, 1 user, load average: 31.27, 15.51, 6.27

なんか作業していたのかしら?

180 :名無しさん:2014/09/05(金) 09:02:49.22 ID:qE55/z0Op
>>179
>>178の原因をしらべていました。
すると、以下のようなログがあったので詳細を調べていました。

kernel: INFO: task httpd:11432 blocked for more than 120 seconds.
kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
kernel: httpd D ffff81010ee00b30 0 11432 15023 11433 11431 (NOTLB)
kernel: ffff810010711ce8 0000000000000082 ffff81011ed872c0 ffff81011ed872c0
kernel: 0000000000300003 0000000000000009 ffff8100444d20c0 ffff81001d4e1830
kernel: 00156539de1769f8 000000000000bae0 ffff8100444d22a8 000000021dcbaab8
kernel: Call Trace:
kernel: [<ffffffff80063c63>] __mutex_lock_slowpath+0x60/0x9b
kernel: [<ffffffff80009860>] __d_lookup+0xb0/0xff
kernel: [<ffffffff80063cad>] .text.lock.mutex+0xf/0x14
kernel: [<ffffffff8000d089>] do_lookup+0xf5/0x24b
kernel: [<ffffffff8000a2a3>] __link_path_walk+0x9f4/0xf39
kernel: [<ffffffff8000eba2>] link_path_walk+0x45/0xb8
kernel: [<ffffffff8000ce13>] do_path_lookup+0x294/0x311
kernel: [<ffffffff800129da>] getname+0x15b/0x1c2
kernel: [<ffffffff80023f96>] __user_walk_fd+0x37/0x4c
kernel: [<ffffffff8003295d>] sys_faccessat+0xe4/0x18d
kernel: [<ffffffff8005d116>] system_call+0x7e/0x83

181 :◆cZfSunOs.U:2014/09/05(金) 10:59:00.40 ID:Ml+Y7GJrU
>>180 faccessat() 中でデッドロックが起きて
httpd が固まってたという感じなんですかねぇ...

182 :名無しさん:2014/09/12(金) 04:37:46.90 ID:LqWEkzE79
4:20もビミョウですが定期的に上がります
c側のメンテナンス時間?
静かな時間のハズなのに
★携帯→2ch運用情報スレッド1
http://sweet.2ch.sc/test/read.cgi/patisserie/1400814104/139

183 :名無しさん:2014/09/12(金) 10:05:07.09 ID:NDMSjlv6g
>>182
特に、これっといったメンテナンスは行っていないはずです。
後、調べたところ/var/log/messages
に9月11日のログ(Sep 11) が一切記録されていませんでした。
# 何個か、パッケージの更新が来ていた(通知された)ので
# 更新を行います。

184 :名無しさん:2014/09/13(土) 00:49:20.62 ID:vpbb+emK8
c.2ch.sc のメンテナンスを行いサーバ設定を一部変更しました。
# デッドロックが起きそうな部分(一部のログ等)を止めて
# エラーログのレベルを変更してみました。

総レス数 356
109 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200