DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁SEO優化 >> SEO相關 >> 關於SEO >> 如何做好日志分析
如何做好日志分析
編輯:關於SEO     

1、在Windows下的用戶要使用shell命令符的話請先安裝cygwin,安裝方法:Cygwin安裝詳解,快速安裝所有插件,無需聯網,鏈接見下面的原文鏈接。


下面筆者粗略介紹下seo日志分析常用的命令符用法,需要詳細了解每個命令符請使用Google


less *.log 查看文件內容,按“q” 退出


cat  log.log  打開文件,可以多次打開幾個文件,舉例:

  • cat 1.log 2.log
  • cat *.cat

grep -參數  文件名

  • -i 不區分大小寫
  • -v 顯示不符合條件的所有行
  • -c  顯示符合條件的所有行數(符合條件的數量)
  • egrep 屬於grep的升級版,在正則這一塊的支持更完善,使用正則的時候建議使用egrep

head -*   顯示*行,*為數字


head -100  log.log  | tail -10 >>a.log   提取文件第91-100行數據

  • wc -參數   文件名      統計文本大小,字符多少,行數
  • -c 統計文本字節數
  • -m 統計文本字符數
  • -l 統計文本有多少行

sort  –參數 文件名   對文件進行排序

  • -n 對文件按照數字排序
  • -r 反向排序

uniq -參數   對文件去重,去重前需要使用排序sort

  • -c  顯示數據重復的次數

split  -參數  文件名   對文件進行切割

  • -100   (每100行切割成一個文件)
  • -C    25m/b/k   (每25兆/字節/K 分割成一個文件)

"|"   管道,把上一條命令的結果傳輸給下一條命令


“>” 和“>> ” 重定向寫入文件中

  • “>”相當於Python裡面的“w”清空並寫入  
  • “>>”相當於Python裡面的“a” 追加進文件

awk -F  Pattern {action}  文件名     使用指定的字符對每一行數據進行分段,默認是空格(網站日志就是空格分開)

  • -F後面跟的是分隔符
  • pattern 就是action執行的條件,這裡可以使用正則表達式
  • $n 即時第幾段數據  $0表示整行數據
  • NF表示當前記錄的字段數
  • $NF 表示最後一個字段
  • BEGIN和END,這兩者都可用於pattern中,提供BEGIN和END的作用是給程序賦予初始狀態和在程序結束之後執行一些掃尾的工作

案例:計算baiduspider下載文件總大小


$ awk ‘{print $10}’ baidu.log |awk ‘BEGIN{total=0}{total+=$1}END{print total}’


bash shell.sh   運行shell.sh腳本


nslookup ip   查詢地址是否是百度蜘蛛


dos2unix *.sh 將“\r\n”轉換成“\n”Windows——>linux (由於Windows和Linux下的換行符不同,所以我們在Windows下面下的代碼需要使用dos2unix 轉換成Linux下的換行符,否則運行shell腳本會報錯)


unix2dos    xxoo.sh 將“\n”轉換成“\r\n” linux——>Windows


rm xx.txt  刪除xx.txt文件


3、一些簡單的命令符介紹到這裡,需要了解shell,建議大家查看相關的書籍,下面我們開始使用shell分析日志。


1、切割百度的抓取數據(將文件切割出來對專門的蜘蛛進行處理能提高效率)

cat log.log |grep -i ‘baiduspider’ >baidu.log


2、網站狀態碼個數查詢(隱藏的是狀態碼個數)

awk ‘{print $9}’  baidu.log|sort|uniq -c|sort -nr


3、百度總抓取量

wc -l baidu.log


4、百度不重復抓取量

awk ‘{print $7}’      baidu.log|sort|uniq|wc -l


5、百度平均每次抓取的數據大小(結果是KB)

awk ‘{print $10}’   baidu.log|awk ‘BEGIN{a=0}{a+=$1}END{ print a/NR/1024}’


6、首頁抓取量

awk ‘$7~/\.com\/$/’   baidu.log|wc -l


7、某目錄抓取量

grep   ‘/news/’   baidu.log|wc -l


8、抓取最多的10個頁面

awk ‘{print $7}’ baidu.log|sort|uniq -c|sort -nr|head -10


9、找出抓取的404頁面

awk ‘$9~ /^404$/ {print $7}’ baidu.log|sort|uniq|sort -nr


10、找出抓取了多少js文件和文件抓取的次數(可以看出百度基本不抓JS)

awk ‘$7~ /.js$/ {print $7}’ baidu.log|sort|uniq -c  |sort -nr


相信看到這裡大家已經有了想試一把手的沖動了,只要你搞懂了上述的內容,上面的操作都可以輕而易舉的完成,沒有任何困難,還可以有更多的維度進行分析,不僅僅是SEO領域。只要你敢想,就能挖掘更多的數據出來(當然更復雜的維度可能需要學習shell更多的內容喲,當然,以我的努力程度之低都能做到的事情,大家應該都不是問題)。


XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved