欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Linux下日志分析的幾個常用命令有哪些

Linux下日志分析的幾個常用命令有哪些,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

創(chuàng)新互聯公司專業(yè)為企業(yè)提供杜爾伯特網站建設、杜爾伯特做網站、杜爾伯特網站設計、杜爾伯特網站制作等企業(yè)網站建設、網頁設計與制作、杜爾伯特企業(yè)網站模板建站服務,十余年杜爾伯特做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。

有時候我們需要對線上的應用日志做一些分析和簡單的統計工作,熟悉一下Linux下文本處理的幾個命令,可能會有意想不到的收獲:

more /less   查看文件內容

head/tail     查看文件中頭或尾的行內容

grep    在文件中查找

awk    文本處理

sort    排序

sed    文本處理

下面舉個兩個例子,說明一下這幾個命令的簡單應用

1、統計一下今天支付寶到淘寶、淘寶到支付寶的接口調用情況

第一步,找到日志文件路徑,確定日志格式  

因為接口調用走是TC,先ssh到一臺tc的服務器,到日志目錄下,ll 一下,看到有幾個命名為alipay的日志文件,感覺是打印接口調用日志的,

more alipay-notify-success.log  

輸出:  
2009-06-29 00:00:00,421 [] INFO  alipay-notify-success -  
*********alipay notify callback*********  
out_trade_no=T200P2062628786,trade_status=WAIT_BUYER_PAY,notify_action_type=createPartnerTradeAction,  
input:

從日志看出,這是支付寶回調淘寶接口的日志,格式包括:時間,訂單號、狀態(tài)、通知類型等等

more alipay.log  

輸出:  
2009-06-29 00:00:00,072 [] INFO  core.SignedTbClientInvoker -  
**********Payway Request and Response*********  
Service Name:  
trade_create  
Request URL:  
http://aligw.alipay.com

從日志上看,這是淘寶調用支付寶的日志,格式包括:時間,接口類型,請求內容等等

第二步,查找特征文本  

需要分類型統計接口的調用次數,所以特征字符串就是接口的類型文本,使用grep 命令

grep ‘,notify_action_type’ alipay-notify-success.log  

第二個日志比較特殊,特征文本單獨一行,沒有固定前綴或者后綴特征,而前一行是固定的”Service Name:“,可以查找前一行,然后grep輸出的時候多輸出一行:

grep ‘Service Name:’ -A1 alipay.log  

grep 命令有很多可選參數,比如忽略大小寫,輸出前(-B before),后(-A after)行文本等等。

第三步,文本分列  

通常,日志文件的一行文本,都由幾列組成,中間是分隔字符串,而我們的目標就是找到需要的列,并進行相關的計算,統計,這里就需要用到 awk 命令

對于 alipay-notify-success.log 日志文件,我們使用下面命令:

grep ‘,notify_action_type’ alipay-notify-success.log | awk -F’,’ ‘{a[$3]++}END{for (i in a) print i”,”a[i]}’  

grep命令找到符合的行,作為awk命令的輸入,-F 后面是指定分隔符號,后面是表達式,首先定義一個數組a(也可以理解為是一個map)用分隔出來的第三列作為下標(key),值每次加一,END 后面是最后執(zhí)行的語句,循環(huán)輸出數組

awk命令本身很強大,可以全面地看一下它幫助

第四步,排序  

第三步已經完成了計算、統計工作,最后我們根據調用次數進行一下排序,方便查看

這里使用sort 命令

grep ‘,notify_action_type’ alipay-notify-success.log | awk -F’,’ ‘{a[$3]++}END{for (i in a) print i”,”a[i]}’ |   sort -t, -k2 -n -r  

-t 跟ark的-F功能類似,是把一行文本分成幾列,-k指定需要排序的列,-n表示按數字方式排序,-r 表示倒序

最后,我們看到了輸出:

notify_action_type=createPartnerTradeAction,52641  
notify_action_type=payByAccountAction,44807  
notify_action_type=sellerSendGoodsAction,43848  
notify_action_type=confirmReceiveAction,40705  
notify_action_type=modifyTradeAction,25733  
notify_action_type=allowRefundAction,10407  
notify_action_type=autoFinishTradeAction,8351  
notify_action_type=closeTradeAction,8030  
notify_action_type=applyRefundiiiAction,2653  
notify_action_type=refundDisburseAction,2330  
notify_action_type=confirmDisburseAction,401  
notify_action_type=extendTimeoutLimitAction,368  
notify_action_type=modifyRefundiiiAction,280  
notify_action_type=cancelRefundiiiAction,52  
notify_action_type=null,20  
notify_action_type=unfreezeTradeAction,1  
notify_action_type=refundVoucherCheckPassAction,1  
notify_action_type=freezeTradeAction,1

當然這是單臺機器的,根據應用的機器數量,可以大致評估一下總的情況。

類似的,對于 日志   alipay.log  

grep ‘Service Name:’ -A1 alipay.log | sed ‘/Service Name:/’d |sed ‘/–/’d | awk -F’    ‘ ‘{a[$2]++}END{for (i in a) print i”,”a[i]}’ | sort -t, -k2 -n -r  

輸出:

trade_create,51326  
send_goods_confirm_by_platform,40716  
confirmReceiveGoods,39351  
modifyTradeFee,25261  
cae_charge_agent,10074  
close_trade,3871  
extendTimeout,378  
calculate_service_fee,52  
union_data_prepare,15  
logistic_sign_in,4

接下來,我們再看一個例子

需求:統計一下,denali機器中,我的淘寶首頁 這個頁面的請求次數和平均響應時間

還是分幾步:

1、首先找到日志和日志格式

Apache 的訪問日志,/home/admin/cai/logs/cronlog/2009/06/2002009-06-29-taobao-access_log

more 2002009-06-29-taobao-access_log  

輸出:

58.208.1.15 148452 3251 [29/Jun/2009:00:00:04 +0800] “GET http://my.taobao.com/mytaobao/home/my_taobao.jhtml” 200 14147 “http://my.t  
aobao.com/mytaobao/home/my_taobao.jhtml” “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; QQDownload 551; User-agent  
: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;); SLCC1; .NET CLR 2.0.50727; MDDC; .NET CLR 3.5.30729; .NET CLR 3.0.30618)

2、查找特征文本

grep ‘GET http://my.taobao.com/mytaobao/home/my_taobao.jhtml’ 2009-06-29-taobao-access_log  

3、文本分列

grep ‘GET http://my.taobao.com/mytaobao/home/my_taobao.jhtml’ 2009-06-29-taobao-access_log | awk -F’ ‘ ‘{i+=$2}END{print NR “,” i/NR/1000}’  

看完上述內容,你們掌握Linux下日志分析的幾個常用命令有哪些的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注創(chuàng)新互聯行業(yè)資訊頻道,感謝各位的閱讀!

分享標題:Linux下日志分析的幾個常用命令有哪些
當前網址:http://www.chinadenli.net/article40/ppjgeo.html

成都網站建設公司_創(chuàng)新互聯,為您提供網站維護微信小程序企業(yè)網站制作外貿網站建設App設計品牌網站設計

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

商城網站建設