佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > Linux Shell+Curl網(wǎng)站健康狀態(tài)檢查腳本,抓出中國博客聯(lián)盟失聯(lián)站點

Linux Shell+Curl網(wǎng)站健康狀態(tài)檢查腳本,抓出中國博客聯(lián)盟失聯(lián)站點

熱門標(biāo)簽:鐵路電話系統(tǒng) 地方門戶網(wǎng)站 服務(wù)外包 AI電銷 呼叫中心市場需求 百度競價排名 網(wǎng)站排名優(yōu)化 Linux服務(wù)器

一開始搭建中國博客聯(lián)盟,既有博友提醒我,做網(wǎng)址大全這類網(wǎng)站維護(hù)很麻煩,需要大量的精力去Debug一些已夭折的網(wǎng)站,更是拿松哥的博客大全舉例。當(dāng)然,我也是深以為然。前些時間,看到夢軒麗人的boke123網(wǎng)址大全的維護(hù)記錄,好像是純手工檢查,張戈實在是佩服的五體投地,太有毅力了。

現(xiàn)在博客聯(lián)盟也收錄的博客也已破200了,全部來自自主提交,不管你是草博還是名博,張戈不會強(qiáng)買強(qiáng)賣。由于大部分都是建站不過半年的新站,半路放棄、提前太監(jiān)的博客估計還是有的,于是我決定還是把站點維護(hù)這個工作做起來。

上午用PHP做了一個放到了京東云試了下,發(fā)現(xiàn)檢測速度一般,要等上半天(我寫的php太蹩腳,就不獻(xiàn)丑了)。

隨后,我在VPS上寫了一個多線程的網(wǎng)站狀態(tài)檢測腳本,直接從數(shù)據(jù)庫load站點地址,然后用curl去檢測返回碼,發(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 1
fi
test -f result.log  rm -f result.log
function delay {
    sleep 3
}
tmp_fifofile=/tmp/$$.fifo
mkfifo $tmp_fifofile
exec 6>$tmp_fifofile
rm $tmp_fifofile
#定義并發(fā)線程數(shù),需根據(jù)vps配置進(jìn)行調(diào)整。
thread=100
for ((i=0 ;i$thread;i++ ))
do
    echo
done>6
#開始多線程循環(huán)檢測
for url in $data
do
    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í)行完畢
wait
exec 6>-
#找出非200返回碼的站點
echo List of exception website:
cat result.log | grep -v 200
exit 0 

Ps:關(guān)于shell多線程腳本,后續(xù)文章會有一個詳細(xì)說明,本文篇幅有限,就不多說了。
以下是中國博客聯(lián)盟第一次成員站點存活檢測的結(jié)果:
①、 非200返回碼的異常站點:

②、腳本抓取的無法訪問站點:

人工訪問篩選結(jié)果:
wangyingxue.net(王英學(xué)博客):無法訪問,經(jīng)確認(rèn)處于備案中 √
www.tao0102.com(長江博客):可以訪問 √
blog.hack7d.com(Mcdull技術(shù)博客):無法訪問 ×
www.1992621.com(教師日記):可以訪問 √
www.3miaotu.com(三秒兔):無法訪問 ×
xiaoxiaomayi.com(小小螞蟻博客):可以訪問 √
www.awrui.com(李文棟博客):可以訪問 √

Ps:腳本檢測機(jī)制為:8s內(nèi)未連通的判定為異常,并重試3次,最后輸出結(jié)果,若三次均異常則為000。從圖中和人工篩選可以看出,存在一些誤殺,這個和8s的設(shè)定有一定關(guān)系??梢钥紤]設(shè)置為更長時間,得到更準(zhǔn)確的結(jié)果,當(dāng)然最終還是要結(jié)合人工確認(rèn)的,所以也沒多大關(guān)系。
后續(xù),中國博客聯(lián)盟會制訂一個檢查周期,最短每星期檢查一次,最長一個月檢查一次,爭取讓每個展示的站點都能正常訪問。當(dāng)然,我也會將每次檢查的結(jié)果公布在中國博客聯(lián)盟的站長資訊專欄,方便所有成員查看。
由于目前中國博客聯(lián)盟部署在京東云擎,無法遠(yuǎn)程操控數(shù)據(jù)庫,所以只好暫時用半自動的模式。等以后有時間搬到了阿里云等VPS上后,將會將腳本改成全自動狀態(tài),當(dāng)有網(wǎng)站聯(lián)系多次檢測為失聯(lián)狀態(tài)時,將會暫時將其設(shè)置為隱藏狀態(tài)。

您可能感興趣的文章:
  • Linux Shell中curl和wget使用代理IP的方法教程
  • Linux下命令行cURL的10種常見用法示例
  • Linux下模擬http的get/post請求(curl or wget)詳解
  • Linux中curl命令和wget命令的使用介紹與比較
  • Linux中的curl命令詳解
  • Linux 中 CURL常用命令詳解
  • linux curl命令詳解及實例分享
  • linux命令行下使用curl命令查看自己機(jī)器的外網(wǎng)ip
  • linux下為php添加curl擴(kuò)展的方法
  • Linux curl命令詳解

標(biāo)簽:黃山 衡水 崇左 仙桃 銅川 蘭州 湘潭 湖南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Linux Shell+Curl網(wǎng)站健康狀態(tài)檢查腳本,抓出中國博客聯(lián)盟失聯(lián)站點》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    礼泉县| 湖口县| 商南县| 临漳县| 阳曲县| 湟中县| 金塔县| 屏南县| 麻阳| 田林县| 祁东县| 尚志市| 武宣县| 阿克| 阿拉尔市| 孝义市| 东至县| 吉安县| 凤庆县| 虞城县| 嘉峪关市| 杨浦区| 如皋市| 扎兰屯市| 柏乡县| 博客| 承德市| 武邑县| 乐都县| 中卫市| 寿光市| 津市市| 崇义县| 吉木萨尔县| 宜都市| 湟中县| 卓资县| 绍兴市| 桐柏县| 新泰市| 内黄县|