linux主机每天检查网站的新增404页面,将新增的404页面地址添加到死链文件death.txt中,提供百度站长平台抓取。
检查网站死链地址,依据的是蜘蛛抓取网站之后的访问日志。检查日志里面的404状态码。
death.sh:
#!/bin/bash #初始化变量 #定义蜘蛛UA信息(默认是百度蜘蛛) UA=+http://www.baidu.com/search/spider.html #前一天的日期(nginx日志) DATE=`date +%Y-%m-%d -d "1 day ago" #定义日志路径,日志的文件名格式为 hongzhuangzx.org_2015-05-04.log logfile=/alidata1/www/logs/www.hzwlb.org_${DATE}.log #定义死链文件存放路径 deathfile=/alidata1/www/www.hzwlb.org/death.txt #定义网站访问地址 website=http://www.hzwlb.org #分析日志并保存死链数据 for url in `cat ${logfile} | grep -i "${UA}" | awk '{print $7 " " $9}' | grep " 404" | awk '{print $1}'` do grep "$url" ${deathfile} > /dev/null || echo ${website}${url} >> ${deathfile} done
接着做每日计划任务
#执行如下命令编辑任务计划 [root@root ~]# crontab -e #每天凌晨1点执行此脚本 0 1 */1 * * /root/death.sh > /dev/null 2>&1 #按下ESC,然后键入:x 保存并退出
之前是针对度娘的蜘蛛做的404检查,其他家蜘蛛也可以如此炮制:(2016-6-27新增)
#!/bin/bash #初始化变量 #定义蜘蛛UA信息(默认是百度蜘蛛) UA_baidu=+http://www.baidu.com/search/spider.html UA_yisou=YisouSpider UA_google=+http://www.google.com/bot.html UA_360=360Spider #前一天的日期(nginx日志) #DATE=`date +%Y-%m-%d -d "1 day ago" #定义日志路径,日志的文件名格式为 hongzhuangzx.org_2015-05-04.log logfile=/alidata1/www/logs/chaihongjun.me_nginx.log #定义死链文件存放路径 deathfile=/alidata1/www/web/chaihongjun.me/404.txt #定义网站访问地址 website=https://chaihongjun.me #定义网站访问地址 #分析日志并保存死链数据(baidu) for url in `cat ${logfile} | grep -i "${UA_baidu}" | awk '{print $7 " " $9}' | grep " 404" | awk '{print $1}'` do grep "$url" ${deathfile} > /dev/null || echo ${website}${url} >> ${deathfile} done #分析日志并保存死链数据(Yisou) for url in `cat ${logfile} | grep -i "${UA_yisou}" | awk '{print $7 " " $9}' | grep " 404" | awk '{print $1}'` do grep "$url" ${deathfile} > /dev/null || echo ${website}${url} >> ${deathfile} done #分析日志并保存死链数据(google) for url in `cat ${logfile} | grep -i "${UA_google}" | awk '{print $7 " " $9}' | grep " 404" | awk '{print $1}'` do grep "$url" ${deathfile} > /dev/null || echo ${website}${url} >> ${deathfile} done #分析日志并保存死链数据(360) for url in `cat ${logfile} | grep -i "${UA_360}" | awk '{print $7 " " $9}' | grep " 404" | awk '{print $1}'` do grep "$url" ${deathfile} > /dev/null || echo ${website}${url} >> ${deathfile} done