需求場景:
我需要分析一個服務器訪問日志,分析百度蜘蛛這個月對求索網頁面的抓取情況。
分析問題:
我的一個access.log文件大小有35M,不可能直接通過打開查看。我需要過濾掉一些沒有的信息,只保留蜘蛛訪問的信息行。
實踐過程:
命令工具:
grep -n 'xxx' file > new file
//grep參數解釋:
//grep查找命令,-n表示行數,xxx表示某字符串, file 要查找的文件
// > new file 導入到一個新的文件
1.利用grep字符串查找命令,篩選出這個月的數據。
grep -n 'Aug' access.log > Aug.log
2.繼續篩選,把有百度蜘蛛標記的行找出。
grep -n 'Baiduspider' Aug.log > Aug_baiduspider.log
以上兩條命令的得到的Aug_baiduspider.log數據就是我要的百度蜘蛛在這個月對我的服務器訪問的日志記錄。
一個從35M的信息中,直接獲取了幾kb我們有用的信息,排除其他行的干擾,我覺得是非常漂亮的一次應用。
結果對比圖:
access.log截圖:
篩選的baiduspider訪問截圖
像這樣的命令對分析日志是非常有幫助的,大家可以舉一反三,拓展更多的應用,比如,分析日志異常,篩選404,503等異常狀態碼的信息,及時高效的發現問題並解決之。