百度搜索资源平台有个功能叫死链提交,是网站向百度提交死链的数据推送工具,被推送死链将被百度搜索屏蔽。网站存在大量死链,将影响网站的站点评级,建议存在大量死链内容的网站,使用本工具,它可以接受txt或者xml格式的地址。如果我们通过收集网站的访问日志,从中抓取搜索引擎访问的404页面,然后一并记录到一个txt文件中,然后每天定时扫描访问日志,一旦有新的404页面,及时记录到该txt文件中,以便资源平台更新。
首先是编写检查访问日志的脚本,从中发现404页面:
#!/bin/bash #death.sh #初始化 #定义搜索引擎爬虫UA(这里包含多种搜索引擎的爬虫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 #默认日志每天自动切割成单独日志文件,并且保留最近至少最近3天日志 DATE=`date +%Y-%m-%d -d "1 day ago"` #明确网站的访问日志文件 logfile=/alidata/www/logs/chaihongjun.me_nginx.log #定义死链文件路径的文件路径,主要不要暴露这个文件 deathfile=/alidata/www/web/chaihongjun.me/404.txt #定义网站的访问地址 website=https://chaihongjun.me #开始分析当天的访问日志文件 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 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 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 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
将以上脚本做一个每天定时任务:
0 1 */1 * * /root/death.sh > /dev/null 2>&1