一開(kāi)始搭建中國(guó)博客聯(lián)盟,既有博友提醒我,做網(wǎng)址大全這類網(wǎng)站維護(hù)很麻煩,需要大量的精力去Debug一些已夭折的網(wǎng)站,更是拿松哥的博客大全舉例。當(dāng)然,我也是深以為然。前些時(shí)間,看到夢(mèng)軒麗人的boke123網(wǎng)址大全的維護(hù)記錄,好像是純手工檢查,張戈實(shí)在是佩服的五體投地,太有毅力了。
現(xiàn)在博客聯(lián)盟也收錄的博客也已破200了,全部來(lái)自自主提交,不管你是草博還是名博,張戈不會(huì)強(qiáng)買強(qiáng)賣。由于大部分都是建站不過(guò)半年的新站,半路放棄、提前太監(jiān)的博客估計(jì)還是有的,于是我決定還是把站點(diǎn)維護(hù)這個(gè)工作做起來(lái)。
上午用PHP做了一個(gè)放到了京東云試了下,發(fā)現(xiàn)檢測(cè)速度一般,要等上半天(我寫的php太蹩腳,就不獻(xiàn)丑了)。
隨后,我在VPS上寫了一個(gè)多線程的網(wǎng)站狀態(tài)檢測(cè)腳本,直接從數(shù)據(jù)庫(kù)load站點(diǎn)地址,然后用curl去檢測(cè)返回碼,發(fā)現(xiàn)速度非常好,基本1分鐘內(nèi)就能出結(jié)果
以下是腳本代碼:
#!/bin/bash#Author:ZhangGe#Date:2014-08-21#Desc:Check the site of ZGboke Alliance.#取出網(wǎng)站數(shù)據(jù)data=`/usr/bin/mysql -uroot -p123456 -e "use zgboke;select web_url from dir_websites where web_status='3';" -N -B | awk '{print $1}'`if [ -z "$data" ];then    echo "Faild to connect database!"    exit 1fitest -f result.log && rm -f result.logfunction delay {    sleep 3}tmp_fifofile=/tmp/$$.fifomkfifo $tmp_fifofileexec 6<>$tmp_fifofilerm $tmp_fifofile#定義并發(fā)線程數(shù),需根據(jù)vps配置進(jìn)行調(diào)整。thread=100for ((i=0 ;i<$thread;i++ ))do    echodone>&6#開(kāi)始多線程循環(huán)檢測(cè)for url in $datado    read -u6    {    #curl抓取網(wǎng)站http狀態(tài)碼    code=`curl -o /dev/null --retry 3 --retry-max-time 8 -s -w %{http_code} $url`    echo "$code ---> $url">>result.log    #判斷子線程是否執(zhí)行成功,并輸出結(jié)果    delay && {        echo "$code ---> $url"    } || {        echo "Check thread error!"    }    echo >& 6}&done#等待所有線程執(zhí)行完畢waitexec 6>&-#找出非200返回碼的站點(diǎn)echo List of exception website:cat result.log | grep -v 200exit 0Ps:關(guān)于shell多線程腳本,后續(xù)文章會(huì)有一個(gè)詳細(xì)說(shuō)明,本文篇幅有限,就不多說(shuō)了。
以下是中國(guó)博客聯(lián)盟第一次成員站點(diǎn)存活檢測(cè)的結(jié)果:
①、 非200返回碼的異常站點(diǎn):

②、腳本抓取的無(wú)法訪問(wèn)站點(diǎn):

人工訪問(wèn)篩選結(jié)果:
wangyingxue.net(王英學(xué)博客):無(wú)法訪問(wèn),經(jīng)確認(rèn)處于備案中 √
www.tao0102.com(長(zhǎng)江博客):可以訪問(wèn) √
blog.hack7d.com(Mcdull技術(shù)博客):無(wú)法訪問(wèn) ×
www.1992621.com(教師日記):可以訪問(wèn) √            
新聞熱點(diǎn)
疑難解答
網(wǎng)友關(guān)注