awk統計訪問日誌access.log

awk如何使用

簡單文本處理中,功能強大的awk命令。下文詳細描述使用方法與示例:

語法:

awk [選項參數] 'script' var=value file(s)
或
awk [選項參數] -f scriptfile var=value file(s)

查看最新的訪問日誌

$ tail -n 50000 /data1/logs/nginx/access.log

0.012	0.012	10.135.12.135	508	127.0.0.1:9001	12/Oct/2019:10:49:17 +0800 aaadns.com	POST /api/pro HTTP/1.0

tail查看文件結尾
tail -n 50000 查看文件倒數5萬條記錄

正則匹配訪問url 包含字符串

$ awk '{if($10~/separation/) {print substr($10,0,80)}}'

$0 表示整行記錄
$10 /api/pro 以空格分隔的第10個字符串
if ($10~/separation/) 正則匹配第10個字符串是否包含separation
substr($10, 0, 80) 取第10個字符串中0到80個字符

url以特定字符分隔

$ awk '{split($0,a,"?"); print a[1]}

split($0,a,"?") $0表示輸入的字符串,將輸入字符串以?分隔,結果保存在a變量中

統計所有url的訪問次數

tail -n 50000 /data1/logs/nginx/access.log | awk '{if($10~/separation/) {print $10}}' | awk '{split($0,a,"?"); print a[1]}' |sort |uniq -c

   13 /separation/business/getBusin****
   94 /separation/house/com**
   13 /separation/house/de**
   4 /separation/housedetail/click***
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章