亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪(fǎng)問(wèn)板塊 發(fā)新帖
查看: 1475 | 回復(fù): 3
打印 上一主題 下一主題

大伙來(lái)找錯(cuò)吧... [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2010-01-05 13:41 |只看該作者 |倒序?yàn)g覽
一段封爬蟲(chóng)的腳本,但是結(jié)果總是不對(duì),gray_ip_list 里的IP總是重復(fù)出現(xiàn),大伙幫忙查查哪里的問(wèn)題?
#!/bin/bash
ACCESS_LOG="./access_r.log"
PROG_DIR=$(pwd)
PORT=10000
ANA_SCRIPT="ngx-access.py"
cd $PROG_DIR
[ -e log_tmp ] && rm -f log_tmp
[ ! -e spider_ip_list ] && touch spider_ip_list
[ -e gray_ip_list ] ||  touch gray_ip_list
[ -e warn_ip_list ] && rm -f warn_ip_list && touch warn_ip_list || touch warn_ip_list
[ ! -e test_url_list ] && touch test_url_list
[ ! -e access_log_data ] && touch access_log_data

tail -n 15000 $ACCESS_LOG > access_log_data
awk -v port=$PORT -v ana_script=$ANA_SCRIPT '
        function drop_ip(ip,port){
                print "/sbin/iptables -A INPUT -s "ip" -p tcp -dport "port" -j DROP"
                system("/sbin/iptables -A INPUT -s "ip" -p tcp --dport "port" -j DROP")
                }
        BEGIN{
                spider_ip_file="spider_ip_list"
                gray_ip_file="gray_ip_list"
                test_url_file="test_url_list"
                access_log_file="access_log_data"
                log_tmp_file="log_tmp"
                warn_ip_file="warn_ip_list"
                ip_warn_value=50
                url_warn_value=10
                spider_ip_arr[0]=""
                gray_ip_arr[0]=""
                test_url_arr[0]=""
                iptable_arr[0]=""
                warn_ip_arr[0]=""
        }
        FILENAME==spider_ip_file{spider_ip_arr[$1]+=1}
        FILENAME==gray_ip_file {gray_ip_arr[$1]+=1}
        FILENAME==test_url_file{test_url_arr[$1]+=1}
        FILENAME==access_log_file{
                if( $0~/spider|bot|Yahoo|archiver|yodaoic/ && spider_ip_arr[$1]==0 ){
                        if (iptable_arr[$1]<1){
                                iptable_arr[$1]+=1
                                drop_ip($1,port)
                                print $1 >> spider_ip_file
                                #fflush(spider_ip_file)
                        }else{
                                iptable_arr[$1]+=1
                        }
                }else{
                        print $0 >> log_tmp_file
                        #fflush(log_tmp_file)
                }
        }END{
                command="/usr/bin/python "ana_script" G -gh "log_tmp_file" 2>&1"
                while( ( command |& getline )>0 ){
                        if (NF==3 && "-"!~$2 && $1>ip_warn_value && $0!~/Group Field/ && $3!~\
                                /192.168.*.*/){
                                        ip=$3
                                        gray_ip_arr_new[ip]+=1
                                        command2="/usr/bin/python "ana_script" FG -gr -h "ip" "log_tmp_file" 2>&1"
                                        while( ( command2 |& getline)>0 ){

                                                if (NF==3 && "-"!~$2 && $1>url_warn_value && $1!~/Filter/){
                                                        for(i in url_test_arr){
                                                                if($3~/i/){
                                                                        warn_ip_arr[ip]+=1
                                                                        break_tag=0
                                                                        break
                                                                }
                                                        }
                                                }
                                                if(break_tag==0){break}
                                        }
                                        if (ip in gray_ip_arr && warn_ip_arr[ip]>0){
                                                print "gray ip twice and url checked not pass:",ip >> warn_ip_file
                                                #fflush(warn_ip_file)
                                        }else{
                                                if(ip in gray_ip_arr){
                                                        print "gray ip twice:",ip >> warn_ip_file
                                                        #fflush(warn_ip_file)
                                                }
                                        }
                        }
                }

                print "0" > gray_ip_file
                fflush(gray_ip_file)
                for( i in gray_ip_arr_new ){
                        if (! i in gray_ip_arr){print i,"is not in !";print i >> gray_ip_file}
                }

        }' spider_ip_list gray_ip_list test_url_list access_log_data

論壇徽章:
1
榮譽(yù)會(huì)員
日期:2011-11-23 16:44:17
2 [報(bào)告]
發(fā)表于 2010-01-05 15:34 |只看該作者
看著就暈

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2010-01-05 17:11 |只看該作者
我也看暈了,自己中間多查幾個(gè)不同的echo 出來(lái)debug就好了。

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2010-01-06 11:40 |只看該作者

回復(fù) #3 劉五十三 的帖子

ECHO 了N多個(gè),沒(méi)發(fā)現(xiàn)問(wèn)題所在...大伙幫忙啊...怎么這么少人頂呢...
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專(zhuān)區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP