Puncte:0

Filtrați blocurile de jurnal de ieșire dintr-un flux de jurnal

drapel gb

Iată sarcina mea:

Am un flux sursă de jurnal live dintr-un proces de mesagerie. O mulțime de rezultate sunt irelevante pentru mine, dar există secțiuni pe care vreau să le colectez și să le evaluez separat. Aceste blocuri încep cu „---BEGIN Request---” la sfârșitul unei linii separate care începe cu data/ora, numele gazdei și procesul[pid]: . Și, în consecință, un bloc se termină cu „---END Request---” la sfârșitul altei linii. Între acestea două este ceea ce vreau să surprind.

Încercările mele de a sed cu un fișier de extras de jurnal au eșuat. Am abordat acest lucru încercând să elimin totul în afara punctelor mele de focalizare, dar încă am primit fiecare linie. Poate cineva vede greșeala mea:

sed -r '/---END Solicitare---$/{
   $!{ N 
     s/---END Solicitare---.?\n([^:]+: )---BEGIN Solicitare---$/---END Solicitare---\n\1---BEGIN Solicitare- --/
     t sub-hit
     :sub-dra
     P          
     D          
     :sub-hit
   }    
 }' sample.log

Cred că awk ar putea fi un instrument alternativ de utilizat aici, dar nu m-am uitat la performanța lui pentru a lucra la fluxurile de jurnal live.

Întotdeauna există cineva cu o soluție care folosește python sau orice alt limbaj. Sunt deschis la asta, dar consider că plănuiesc să folosesc acest lucru pe un flux de jurnal și nu pe fișiere text statice.

Iată fragmentul meu simplificat de jurnal de probă pentru testare. Am anonimizat și am eliminat unele lucruri.

20 ianuarie 14:20:47 host-230-17-17-10 tokenhandler[4230]: ---BEGIN Request---
20 ianuarie 14:20:47 host-230-17-17-10 tokenhandler[4230]: PUT /token/connect HTTP/2.0
20 ianuarie 14:20:47 host-230-17-17-10 tokenhandler[4230]: gazdă: host-230-17-17-10
20 ian 14:20:47 host-230-17-17-10 tokenhandler[4230]: Accept: */*
20 ianuarie 14:20:47 host-230-17-17-10 tokenhandler[4230]: Accept-Encoding: gzip, deflate, br
20 ianuarie 14:20:47 host-230-17-17-10 tokenhandler[4230]: Accept-Language: de-de
20 ianuarie 14:20:47 host-230-17-17-10 tokenhandler[4230]: Cache-Control: no-cache
20 ianuarie 14:20:47 host-230-17-17-10 tokenhandler[4230]: Lungimea conținutului: 306
20 ian 14:20:47 host-230-17-17-10 tokenhandler[4230]: Content-Type: text/xml
20 ian 14:20:47 host-230-17-17-10 tokenhandler[4230]: User-Agent: TokenHandler/3.2
20 ianuarie 14:20:47 host-230-17-17-10 tokenhandler[4230]: [date blob 1B]
20 ianuarie 14:20:47 host-230-17-17-10 tokenhandler[4230]: <?xml version="1.0" encoding="UTF-8"?>
20 ian 14:20:47 host-230-17-17-10 tokenhandler[4230]: <!DOCTYPE și așa mai departe. Tăiați scurt aici în mod intenționat pentru askubuntu
20 ianuarie 14:20:47 host-230-17-17-10 tokenhandler[4230]: ---END Solicitare---
20 ianuarie 14:20:47 host-230-17-17-10 tokenhandler[4230]: ---BEGIN Response---
20 ianuarie 14:20:47 host-230-17-17-10 tokenhandler[4230]: HTTP/1.1 200 OK
20 ianuarie 14:20:47 host-230-17-17-10 tokenhandler[4230]: Conexiune: închidere
20 ianuarie 14:20:47 host-230-17-17-10 tokenhandler[4230]: [date blob 1B]
20 ianuarie 14:20:47 host-230-17-17-10 tokenhandler[4230]: ---END Răspuns---
20 ianuarie 14:20:47 host-230-17-17-10 tokenhandler[4230]: transport=http method=PUT status=200 proto=HTTP/2.0 host=10.17.17.240 user_agent=TokenHandler/3.2 path=/token/ conectați
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: ---BEGIN Request---
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: POST /v3/token/033aaed70bdce765ace3223a5dc5 HTTP/1.1
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: gazdă: host-230-17-17-10
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: Conexiune: închidere
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: Autorizare: Basic bWljcm9tZG06MjVuWjdWV3BjMkZaalRkZlRNVTNzaWdyS2xwZlRsVQ==
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: Conexiune: închidere
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: Lungimea conținutului: 0
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: [date blob 1B]
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: ---END Solicitare---
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: level=info component=tknzr method=add udid=033aaed70bdce765ace3223a5dc5 err=null taken=145.419185ms
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: ---BEGIN Response---
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: HTTP/1.1 200 OK
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: Conexiune: închidere
Jan 20 14:20:48 host-230-17-17-10 tokenhandler[4230]: Content-Type: application/json; set de caractere=utf-8
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: [date blob 1B]
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: {
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: „status”: „succes”,
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: „notification_id”: „FC88CDE8-D3AD-4607-602F-6005E70E83E2”
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: }
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: ---END Response---
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: transport=http method=POST status=200 proto=HTTP/1.1 host=10.17.17.230 user_agent= path=/v3/token/033aaed705aced3223a
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: ---BEGIN Request---
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: PUT /token/connect HTTP/2.0
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: gazdă: host-230-17-17-10
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: Accept: */*
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: Accept-Encoding: gzip, deflate, br
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: Accept-Language: en-US,en;q=0.9
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: Cache-Control: no-cache
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: Lungimea conținutului: 306
20 ian 14:20:48 host-230-17-17-10 tokenhandler[4230]: Content-Type: text/xml
20 ian 14:20:48 host-230-17-17-10 tokenhandler[4230]: User-Agent: TokenHandler/3.2
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: [date blob 1B]
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: <?xml version="1.0" encoding="UTF-8"?>
20 ian 14:20:48 host-230-17-17-10 tokenhandler[4230]: <!DOCTYPE și așa mai departe. Tăiați scurt aici în mod intenționat pentru askubuntu
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: ---END Solicitare---
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: ---BEGIN Response---
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: HTTP/1.1 200 OK
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: Conexiune: închidere
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: [date blob 1B]
20 ianuarie 14:20:48 host-230-17-17-10 tokenhandler[4230]: ---END Response---
Puncte:0
drapel in

Într-un flux (jurnal live) puteți folosi opțiunea sed -u (fără tampon)

Puteți folosi suplimentar |cut -c55-10000 la sfârșitul comenzii pentru a tăia data, numele gazdei etc..

Andreas avatar
drapel gb
Bună Denis, îmi place parametrul fără tampon. Ideea ta de a folosi cut cu poziții fixe nu va funcționa dacă pid (id-ul procesului) dintre paranteze pătrate are mai multe sau mai puține cifre decât 4. Știu deja că aș folosi `cut -d':' -f 4- ` pentru realiza asta.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.