网站进行改版或是迁移,或者对于某些内容涉及敏感话题进行删除等,都会造成网站的页面 404 ,无法正常访问链接。如果知道某个链接是 404 ,那还比较简单,直接提交给搜索引擎,比如百度站长平台的死链提交。但是,如果因某些因素造成的 404 死链,导致搜索引擎蜘蛛爬虫大量爬取 404 链接,那么会造成网站运营的不便。如何减少这种情况的产生呢?通过 Shell 脚本分析网站日志可以获得 404 链接。
Shell 脚本代码
#!/bin/bash #Desc: Death Chain File Script #Author: ZhangGe #Blog: http://zhangge.net/5038.html #Date: 2015-05-03 #初始化变量 #定义蜘蛛UA信息(默认是百度蜘蛛) UA='+http://www.baidu.com/search/spider.html' #前一天的日期(nginx日志) DATE=`date +%Y-%m-%d -d "1 day ago"` #定义日志路径 logfile=/home/wwwlogs/zhangge.net_${DATE}.log #定义死链文件存放路径 deathfile=/home/wwwroot/zhangge.net/death.txt #定义网站访问地址 website=http://zhangge.net #分析日志并保存死链数据 for url in `awk -v str="${UA}" '$9=="404" && $15~str {print $7}' ${logfile}` do grep -q "$url" ${deathfile} || echo ${website}${url} >>${deathfile} done
使用说明:
①、脚本适用于每天都做了日志切割的Nginx
②、保存为 shell 脚本,比如 deathlink.sh,然后如下建立任务计划:
③、执行后,将在网站根目录生成死链文件:death.txt,可以浏览器访问看看内容
④、前往前往百度站长平台提交这个死链文件
详情可参考@张戈博客