欢迎登陆真网站,您的到来是我们的荣幸。 登陆 注册 忘记密码? ☆设为首页 △加入收藏
欢迎加入真幸福QQ群
电脑知识: 基础知识 网络技术 操作系统 办公软件 电脑维修 电脑安全 windows7 windows8 windows10 服务器教程 平板电脑 视频播放教程 网络应用 互联网 工具软件 浏览器教程 QQ技巧 输入法教程 影视制作 YY教程 wps教程 word教程 Excel教程 PowerPoint
云南西双版纳特产小花糯玉米真空包装


解决windows server 2008图片文件无法显示缩略图问题
如何打造最安全的服务器虚拟化环境
WEB专用服务器的安全设置的实战技巧
网管经验谈 服务器常见软件故障解析
对于服务器而言什么最重要
iptables防火墙只允许指定ip连接指定端口、访问指定网站
谷歌android m什么时候发布
SLICY MAC下的切图神器!
音乐云盒怎么把普通音响变成无线Hi-Fi音响?
8款替代DREAMWEAVER的免费开源网页开发工具
linux中利用Shell脚本自动提交网站404死链到搜索引擎
【 来源:网络 】【 点击:1 】 【 发布时间:2017_03_03 08:59:59 】

   Shell脚本

  说做就做,简单的写了个 Shell 脚本就搞定了!

  脚本名称:网站死链生成脚本

  脚本功能:每天定时分析网站前一天的 nginx 日志, 然后提取状态码为404并且UA为百度蜘蛛的抓取路径,并写入到网站根目录下的 death.txt 文件,用于提交百度死链。

  脚本代码:

  #!/bin/bash

  #Desc: Death Chain File Script

  #Author: ZhangGe

  #Blog: http://你的域名/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/你的域名_${DATE}.log

  #定义死链文件存放路径

  deathfile=/home/wwwroot/你的域名/death.txt

  #定义网站访问地址

  website=http://你的域名

  #分析日志并保存死链数据

  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

  使用说明:

  ①、脚本适用于每天都做了日志切割的Nginx

  ②、将代码保存为 shell 脚本,比如 deathlink.sh,然后如下建立任务计划:

  #执行如下命令编辑任务计划

  [root@Mars_Server ~]# crontab -e

  #每天凌晨1点执行此脚本

  0 1 */1 * * /root/death.sh >/dev/null 2>&1

  #按下ESC,然后键入 :wq 保存并退出

  ③、执行后,将在网站根目录生成死链文件:death.txt,可以浏览器访问看看内容,比如:

  http://你的域名/death.txt

  ④、前往立即前往提交这个死链文件即可:

  这样一来,系统会每天执行脚本,将昨天的百度蜘蛛爬到的404路径保存到网站根目录下的 death.txt,以备百度死链抓取工具前来抓取。

  值得说明的是,这些死链记录是累加的,已保存的死链数据,就算百度蜘蛛不爬了也会继续保存,需要人工清理,不过一般不清理也没啥问题。

  注意事项:如果你的 nginx服务 并没有配置相应的 access 日志,请自行在 server 下添加所需网站的 access 日志,否则脚本无法使用。

  三、其他拓展

  ①、如果你之前没有做过 Nginx 日志切割,那么可以直接用下面这个脚本来一次性搞定:

  #!/bin/bash

  #Desc: Cut Nginx Log and Create Death Chain File

  #Author: ZhangGe

  #Blog: http://你的域名/5038.html

  #Date: 2015-05-03

  #①、初始化变量:

  #定义access日志存放路径

  LOGS_PATH=/home/wwwlogs

  #定义蜘蛛UA信息(默认是百度蜘蛛)

  UA=+http://www.baidu.com/search/spider.html

  #定义网站域名(需要先给相应的网站以域名形式配置了nginx日志,比如你的域名.log)

  DOMAIN=你的域名

  #定义前一天日期

  DATE=`date +%Y-%m-%d -d "1 day ago"`

  #定义日志路径

  logfile=/home/wwwlogs/你的域名_${DATE}.log

  #定义死链文件存放路径

  deathfile=/home/wwwroot/你的域名/death.txt

  #定义网站访问地址

  website=http://你的域名

  #②、Nginx日志切割

  mv ${LOGS_PATH}/${DOMAIN}.log ${LOGS_PATH}/${DOMAIN}_${DATE}.log

  kill -USR1 `ps axu | grep "nginx: master process" | grep -v grep | awk '{print $2}'`

  #可选功能: 自动删除30天之前的日志,可自行修改保存时长。

  cd ${LOGS_PATH}

  find . -mtime +30 -name "*20[1-9][3-9]*" | xargs rm -f

  #③、网站死链生成(百度专用)

  #分析日志并保存死链数据

  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

  ②、其他WEB服务器,比如 Apache 或 IIS,只要参考脚本思路,修改成实际的路径或日志字段,同样可以写一个相同功能的 Shell 或 Batch 脚本,有需求的朋友自己去研究折腾吧!

本网站由川南居提供技术支持,fkzxf版权所有 浙ICP备12031891号
淳安分站 淳安分站