狠狠网/色综合久久久久综合体桃花网/日本护士三aaaaaa/久久久久久综合一区中文字幕

或者

shell分析日志常命令快速入門

作者:匆匆阿胡 瀏覽:129 發布時間:2017-04-14
分享 評論 0

1、在Windows下的用戶要使用shell命令符的話請先安裝cygwin,安裝方法自行Google(搜技術問題請使用google,百度搜不到活該) 

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

less 文件名 查看文件內容 按“q” 退出 

cat 文件名 打開文件,可以多次打開幾個文件 | cat 1.log 2.log |cat *.cat
grep -參數 文件名
-i 不區分大小寫
-v 顯示不符合條件的所有行
-c 顯示符合條件的所有行數(符合條件的數量) 

egrep 屬于grep的升級版,在正則這一塊的支持更完善,使用正則的時候建議使用egrep 

head -2 文件名 顯示2行
head -100 文件名 | 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 分割成一個文件)

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

“>” 和“>> ” 重定向寫入文件中 “>”相當于“w”清空并寫入 “>>”相當于“a” 追加進文件

 awk -F '分割符'  Pattern {action} 文件名 使用指定的字符對每一行數據進行分段,默認是空格(網站日志就是空格分開)
-F后面跟的是分隔符
pattern 就是action執行的條件,這里可以使用正則表達式
$n 即時第幾段數據 $0表示整行數據
NF表示當前記錄的字段數
$NF 表示最后一個字段
BEGIN和END,這兩者都可用于pattern中,提供BEGIN和END的作用是給程序賦予初始狀態和在程序結束之后執行一些掃尾的工作 

bash shell.sh 運行shell.sh腳本 

dos2unix xxoo.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文件和文件抓取的次數 

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