相关文章推荐
文雅的海龟  ·  创建 TLS 客户端 ...·  1 年前    · 
刚毅的金鱼  ·  Oracle多用户对一个表进行并发插入数据行 ...·  1 年前    · 
小眼睛的热带鱼  ·  用Selenium来爬取数据?真挺简单的!- ...·  1 年前    · 
逆袭的大象  ·  在Canvas ...·  2 年前    · 
Code  ›  Shell+Curl网站健康状态检查脚本,抓出中国博客联盟失联站点开发者社区
张戈 curl
https://cloud.tencent.com/developer/article/1071579
留胡子的柠檬
2 年前
作者头像
张戈
0 篇文章

Shell+Curl网站健康状态检查脚本,抓出中国博客联盟失联站点

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 张戈的专栏 > Shell+Curl网站健康状态检查脚本,抓出中国博客联盟失联站点

Shell+Curl网站健康状态检查脚本,抓出中国博客联盟失联站点

作者头像
张戈
发布 于 2018-03-23 16:03:03
1.6K 0
发布 于 2018-03-23 16:03:03
举报

一开始搭建中国博客联盟,既有博友提醒我,做网址大全这类网站维护很麻烦,需要大量的精力去 Debug 一些已夭折的网站,更是拿松哥的博客大全举例。当然,我也是深以为然。前些时间,看到梦轩丽人的 boke123 网址大全的维护记录,好像是纯手工检查,张戈实在是佩服的五体投地,太有毅力了。

现在博客联盟也收录的博客也已破 200 了,全部来自自主提交,不管你是草博还是名博,张戈不会强买强卖。由于大部分都是建站不过半年的新站,半路放弃、提前太监的博客估计还是有的,于是我决定还是把站点维护这个工作做起来。

上午用 PHP 做了一个放到了vps试了下,发现检测速度一般,要等上半天(我写的 php 太蹩脚,就不献丑了)。

随后,我在 VPS 上写了一个多线程的网站状态检测脚本,直接从数据库 load 站点地址,然后用 curl 去检测返回码,发现速度非常好,基本 1 分钟内就能出结果

以下是脚本代码:

#!/bin/bash
#Author:ZhangGe
#Date:2014-08-21
#Desc:Check the site of ZGboke Alliance.
#取出网站数据
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
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
#定义并发线程数,需根据vps配置进行调整。
thread=100
for  ((i=0 ;i<$thread;i++ ))
done>&6
#开始多线程循环检测
for url in $data
        read -u6
        #curl抓取网站http状态码
        code=`curl -o /dev/null --retry 3 --retry-max-time 8 -s -w %{http_code} $url`
        echo "$code ---> $url">>result.log
        #判断子线程是否执行成功,并输出结果
        delay &&  {
                echo  "$code ---> $url"
        }  ||  {
                echo  "Check thread error!"
        echo  >& 6
#等待所有线程执行完毕
 
推荐文章
文雅的海龟  ·  创建 TLS 客户端 凭据时出现严重错误。内部错误状态为 10013 - 博讯科技工作室 - 博客园
1 年前
刚毅的金鱼  ·  Oracle多用户对一个表进行并发插入数据行操作-腾讯云开发者社区-腾讯云
1 年前
小眼睛的热带鱼  ·  用Selenium来爬取数据?真挺简单的!-selenium爬取数据
1 年前
逆袭的大象  ·  在Canvas App中实现更加灵活的文件上传_51CTO博客_webview上传文件
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号