記錄我的第乙個awk指令碼 日誌統計

2021-09-02 10:04:34 字數 2072 閱讀 3005

專案中需要乙個統計介面量的指令碼,於是嘗試著寫了第乙個awk指令碼。

過程不輕鬆,但是寫完了覺得很爽。哈哈

#########################################

####思路:

####1 按行讀取,需要判斷每條記錄的歸屬執行緒,並快取起來,

####2 每個執行緒的記錄列印都是有順序的,輸入報文》異常》輸出報文

####3 將輸入報文覆蓋快取,當第一次讀取到exception時,認為異常開始,將最近一次的輸入報文列印,

####4 異常全部列印完畢後,列印輸入報文

####注意:

####所有的快取都是按照執行緒名稱做得,類似於執行緒變數,互不影響,通過陣列實現

####

####使用:

####1 thread_key需要替換,不同的日誌不一樣

####2 input_key和output_key如不同也替換

####3 i***clude函式,如有需要可以修改不同的排除條件

#########################################

begin

#獲取執行緒名

function getthreadname(str)

}return thread_name;

}#判斷此行是否需要排除,後續可增加條件

function i***clude(str)

#判斷不需列印輸入輸出報文的異常

function needrequestmsg(str)

printf("+++++++++++++++++開始處理檔案[%s]+++++++++++++++++++\n", filename);

file_name = filename;

}# 獲取執行緒名

thread_name = getthreadname($0);

# 處理不需要列印輸入輸出報文的部分

if(needrequestmsg($0) > 0)

printf("---------end exception-%s-[%d]------------\n", thread_name, thread_exception_num[thread_name]);

}# 當此行中有關鍵字exception

if(index($0, "exception") > 0 && i***clude($0) == 0)

# 當此行沒有執行緒名稱,且不存在caused by關鍵字時,說明為異常被換行,列印上一行

if(index($0, thread_name) == 0 && index($0, "caused") == 0 && index($0, "at ") == 0)

# 所有exception的行都列印

body_exception[thread_name] = sprintf("%s\n%s", body_exception[thread_name], $0);

}# 存在關鍵字"at "的行列印

if(index($0, "at ") > 0 && index($0, "(") > 0)

# 當此行中存在輸出報文關鍵字,且已經開始乙個exception,列印輸入報文,exception體,輸出報文

if(index($0, output_key) > 0 && begin_exception_flag[thread_name] == "1") else

printf("---------end exception-%s-[%d]------------\n", thread_name, thread_exception_num[thread_name]);

# 輸出報文已列印,exception結束

begin_exception_flag[thread_name] = "0";

body_exception[thread_name] = "";

input_msg[thread_name] = "";

}# 當此行中存在輸入報文關鍵字時

if(index($0, input_key) > 0)

}# 快取當前行

row_cache = $0;

}end

我的第乙個爬蟲日誌

剛剛開始學習爬蟲,很多東西不懂,還望前輩們多多指教。總結流程 1 匯入相應的包 1 傳送 多頁在此不傳送頁碼,新編函式迴圈傳入新的頁碼 2 構建函式 1 傳送請求 2 伺服器的響應 3 讀取 編碼資訊 3 編寫正規表示式提取所需內容,括號內容具有唯一性 import urllib import ur...

我的第乙個shell指令碼

今天去某公司面試,做了一道這樣的筆試題。題目 假如日誌檔案有5種型別 error,debug,info,exception,ver 怎樣寫乙個指令碼讓他們歸類統計錯誤型別的次數?error abd debug ggsgfggfgfggf info 13445jflkjfllalss 鑑於昨天只看了一...

我在CSDN的第乙個記錄

就想下點東西 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下markdown的基本語法知識。全新的介面設計,將會帶來全新的寫作體驗 在創作中心設定你喜愛的 高亮樣式,markdown將 片顯示選擇的高亮樣式進行展...