chaihongjun.me

网站404页面地址自动更新提交

百度搜索资源平台有个功能叫死链提交,是网站向百度提交死链的数据推送工具,被推送死链将被百度搜索屏蔽。网站存在大量死链,将影响网站的站点评级,建议存在大量死链内容的网站,使用本工具,它可以接受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


知识共享许可协议本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。作者:柴宏俊»