2016-12-22 85 views
-3

我想寫一個shell腳本或Perl腳本來尋找從日誌下面的模式:腳本日誌中的grep模式

模式例子,我看到從日誌如下:

2016年11月21日04:46:30491 HTTP-threadID001用戶名286x64823x2 sessionID1 10.95.41.89,129.160.54.165,127.0.0.1 /休息/ issueNav/1/issueTable JQL lucene的查詢:

2016年11月21日04:46:30492 HTTP-threadID001用戶名286x64823x2 sessionID1 10.95.41.89,129.160.54.165,127.0.0.1 /休息/ issueNav/1/issueTable JQL種類:[< 「自定義:」 customfield_10270":com.atlassian.jira.i[email protected]d6f17821" >]

2016年11月21日04:46:30492 HTTP-threadID001用戶名286x64823x2 sessionID1 10.95.41.89,129.160.54.165,127.0.0.1 /休息/ issueNav/1/issueTable Lucene的布爾查詢:

如果匹配的模式相同的HTTP-threadID001,和同樣sessionID1,並與issueTable JQL種類:<「自定義:」 customfield_10270" 和最後一個從日誌中的問題表Lucene的布爾查詢,然後將其將通過電子郵件發送給[email protected]

這個腳本會在UNIX crontask設置,可能對每個1分鐘運行。

誰能給我如何寫這個劇本的一些想法?謝謝!

+0

是大膽的零件有問題的模式? – dawg

+0

是的,粗體部分是圖案 – HPLoh

+0

您的預期輸出是什麼? – Inian

回答

0
awk 'BEGIN{FS=" "}{print $0}' logfilename |sed -n '/http-threadID001/p; 
/same sessionID1/p ; 
/issueTable JQL sorts:/p; 
/<"custom:"customfield_10270"/p; 
/issue Table Lucene boolean Query/p'> file.tmp 

mailx -s "Subject" mailaddress <file.tmp 
rm file.tmp 

我希望這是你所需要的

+0

感謝您的回答。 Http-thread會話ID是未知值。每個用戶登錄將具有不同的httpd線程和會話ID。從你的答案中,它通過固定值來尋找?謝謝! – HPLoh

+0

是的,你可以通過刪除非靜態部分來修改它,比如(ID後的數字)和啓動/ http-threadID001/p,所以它看起來像這樣/^http-threadID/p –