中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

日志統計中awk常見的運用

發布時間:2020-07-20 09:22:15 來源:網絡 閱讀:1381 作者:竹弦月 欄目:網絡安全

前言首先awk是一門語言,其次跟其他語言相比,awk的優勢是在文本處理、數值計算等方面,在我們日常的運維工作中,awk還有1個很重要的場景是配合sed、grep的使用,正是因為這些,awk是運維工程師最常用的工具之一,下面記錄一下,awk在日志收集、統計場景的一些最常用的姿勢。


awk使用格式

awk [-F value] [-v var=value] 'program text' [files....]
program text:
     BEGIN {actions}/pattern/{actions}END{actions}
內置變量
    
FS--Field Separator:域的分隔符,默認的是以空白符分隔
    
RS--Record Separator 記錄的分隔符,默認是以換行符來分隔
    
FILENAME -- current filename
                   NF -- Number of
Feilds in current record,域的個數
    
NR -- Number of Record 輸入的記錄數,相當于行號一樣,多個文件時會接著遞增
    
FNR -- File Number of Record 輸入的當前記錄數,每個文件單獨計算
    
$0 -- the whole record  當前整個記錄
    
$n -- the nth field of the current record 當前記錄的第n個域


awk常用函數

1、split (string, array, field separator)

2、substr(s,p,n) 返回字符串s中從p開始長度為n的后綴部分

3、 length函數返回沒有參數的字符串的長度

4、gsub(regular expression, subsitutionstring, target string)



awk擴展使用

awk[options] 'script' FILES
選項
-F:字段分隔符
-v:聲明一個變量,FS=:
awk'{print $1 $2}' a.txt:則顯示welcometo
awk'{print $1,$2}' a.txt:則顯示wlecometo
--------------
內置變量
    ORS
     OFS
     FS
     RS
     NR
     NF
     FNR
     ARGV:數組,保存命令行本身這個字符串,如awk'{print $0}' a.txt b.txt
         這個命令中,ARGV[0]保存awk,ARGV[1]保存a.txt
    ARGC:awk命令的參數個數
----------------
printf命令的使用格式
    printfformat,item1
要點:
1、其與print命令最大的不同是,printf需要指定format
2、format用于指定后面的每個item的輸出格式
3printf語句不會自動打印換行符
format格式的指示符:
%c:顯示字符的ASCII
%d,%i十進制的整數
%e,%E科學計數法顯示數值
%f:顯示浮點數
%g,%G以科學計數法的格式或浮點數的格式顯示數值
%s:顯示字符串
%u:無符號整數
%%:顯示%自身

修飾符:
N:顯示寬度
-:左對齊
+:顯示數值符號


1,統計squid日志中各個狀態碼所占的百分比

# cat /usr/local/squid/var/logs/access.log | awk 'BEGIN{print "status code","\t""rate"}{count+=1;a[$9]+=1}END{for(i in a) print i,"\t",a[i]/count*100}' | sort -nk2
status code 	rate
400 	 0.00412448
416 	 0.00412448
478 	 0.00412448
204 	 0.00618672
401 	 0.0268091
0 	 0.0659916
301 	 0.0763028
302 	 0.787775
404 	 2.19628
403 	 2.66441
206 	 5.02567
304 	 17.7043
200 	 71.4339


2,統計squid日志中訪問次數前10的域名

]# cat /usr/local/squid/var/logs/access.log | awk 'BEGIN{print "domain","\t","rate"}{count+=1;a[$2]+=1}END{for(i in a){print i,"\t",a[i]}}' | sort -nk2 | tail
bsy.pp.starschinalive.com 	 125
js1.pcfg.cache.wpscdn.cn 	 131
portal.wsds.cn 	 162
vas.fun.tv 	 173
img.funshion.com 	 238
www.duba.com 	 277
plugin.video.51togic.com 	 280
p1.meituan.net 	 286
res.qxz.37wan.com 	 306
d.ifengimg.com 	 481

3,統計最近5分鐘的流量

日志:27.156.95.175 uc.a.yximgs.com "p_w_picpath/webp" [25/Dec/2016:22:17:01 +0800] "GET http://uc.a.yximgs.com/upic/2016/11/27/11/BMjAxNjExMjcxMTIxMTNfODY2MTM1NV8xMzAxODgwMDQ4XzJfMw==_low.webp?tag=1-1482675421-f-0-8a7txqz36n-ce40124930229f39 HTTP/1.1" 200

cat /usr/local/squid/var/logs/access.log | awk '{i=int(substr($4,17,2)/5)*5;h=substr($4,14,2);s[h":"i]+=$10;}END{for(i in s)print i,s[i]*8/1024/1024/300"Mbps"}'
21:50 143.537Mbps


4,MISS的域名請求數top10統計

# cat /usr/local/squid/var/logs/access.log | awk '{n+=1;if($0~/MISS/)a[$2]+=1}END{for(i in a){print i,a[i],a[i]/n*100}}' | sort -nrk2  | head
www.duba.com 237 0.868291
p1.meituan.net 163 0.597179
pas.suning.com 66 0.241803
shopping.suning.com 55 0.201502
77g4l9.com5.z0.glb.qiniucdn.com 55 0.201502
res.qxz.37wan.com 50 0.183184
review.suning.com 41 0.150211
static.1sapp.com 32 0.117238
s1.vas.wpscdn.cn 30 0.10991
fs.ios.kugou.com 25 0.0915919


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

黔江区| 乡城县| 扎囊县| 唐河县| 新源县| 永顺县| 鄂托克前旗| 鄂尔多斯市| 轮台县| 田阳县| 铁岭县| 察雅县| 孙吴县| 阳朔县| 靖远县| 许昌市| 永宁县| 丰宁| 吉林省| 新建县| 米易县| 铜川市| 出国| 翁牛特旗| 望城县| 南昌县| 洛宁县| 齐河县| 荣昌县| 绵阳市| 丹阳市| 白山市| 神池县| 贵定县| 于都县| 旌德县| 湘西| 平果县| 云和县| 延边| 锡林郭勒盟|