使用shell命令分析統計日誌,shell命令統計日誌
需要統計使用者日誌資訊,分析出使用者行為時,用shell往往能方便地取出很多資料,取出後再放置到excel中統計。
例如:統計日誌中含loadCustomProcess這個地址的訪問,按訪問耗時排序:
grep "loadCustomProcess" /home/workflow/socket.txt | awk -F " " '{print $11}'|awk -F ":" '{print $2}'|sort -nr
查詢出現“INFO",出現量前10的記錄:
grep "INFO" /usr/share/tomcat6/logs/flowplatform.log| awk -F " " '{print $8}'|sort |uniq -c|sort -nr
解析:
grep "loadCustomProcess" /home/workflow/socket.txt 找出檔案/home/workflow/socket.txt中包含loadCustomProcess的行
uniq -c:統計連續出現的次數(注意是連續),因此在uniq -c前需先用sort才能有sql中count的效果
awk SQL語句中的SELECT欄位,“-F " "”表示按照空格對每行資料進行分隔,得到的每個單元就是一個欄位,而“$7”就是第七個欄位
sort 把結果排序,為後面的匯總做準備,
sort -nr 是按照數值大小倒序排列,相當於SQL中的ORDER BY ... DESC,
head -10 取前十條
一月度統計日誌的shell指令碼,!
針對具體環境的指令碼,還是自己寫吧。
你的需求,基本上簡單看看shell,都能寫。一點都不難。
怎使用shell命令(非shell指令碼)篩選出日誌資訊為error的數量,並以數量從大到小排列
沒有範例,只能泛泛地說了,
1. 篩選用grep, 比如grep "error" | 其他命令
2. 用上面的管道"|"串連其他的命令, 其他用awk統計不同的error, 記錄到數組中, 並排序輸出