2016-11-07 3 views
2

ich varnishlog Befehl bin mit und versuchen, einige Felder zu filtern:Mit zwei Rohren gibt leere Ergebnisse

sudo varnishlog -c | grep -E 'ReqURL|Varnish-Cache' 

- ReqURL   /sample/2 
- RespHeader  X-Varnish-Cache: HIT 
- ReqURL   /sample/2 
- RespHeader  X-Varnish-Cache: HIT 

Nun, wenn ich einen anderen Befehl grep verwende ich leer Ergebnisse erhalten:

sudo varnishlog -c | grep -E 'ReqURL|Varnish-Cache' | grep 'HIT' 

Können Sie mir bitte hilf mir, was kann das Problem hier sein?

Beispiel für die Ausgabe des Befehls: sudo varnishlog -c

* <<Request>> 658516 
- Begin   req 658515 rxreq 
- Timestamp  Start: 1478508065.780332 0.000000 0.000000 
- Timestamp  Req: 1478508065.780332 0.000000 0.000000 
- ReqStart  10.56.36.2 55578 
- ReqMethod  GET 
- ReqURL   /sample/2 
- ReqProtocol HTTP/1.1 
- ReqHeader  Host: localhost:6081 
- ReqHeader  User-Agent: Mozilla/5.0 Firefox/44.0 
- ReqHeader  Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
- ReqHeader  Accept-Language: en-US,en;q=0.5 
- ReqHeader  Accept-Encoding: gzip, deflate 
- ReqHeader  Connection: keep-alive 
- ReqHeader  Pragma: no-cache 
- ReqHeader  Cache-Control: no-cache 
- VCL_call  RECV 
- VCL_return  hash 
- ReqUnset  Accept-Encoding: gzip, deflate 
- ReqHeader  Accept-Encoding: gzip 
- VCL_call  HASH 
- VCL_return  lookup 
- Hit   658416 
- VCL_call  HIT 
- VCL_return  deliver 
- RespProtocol HTTP/1.1 
- RespStatus  200 
- RespReason  OK 
- RespHeader  Content-Length: 4774 
- RespHeader  Last-Modified: Tue, 12 Apr 2016 17:42:58 GMT 
- RespHeader  Etag: f9d34a65e8c1b30245c2f12534348ff9 
- RespHeader  X-Timestamp: 1460482977.61998 
- RespHeader  Content-Type: image/png 
- RespHeader  X-Trans-Id: txf52283ea65004e578ddfe-0058203d84 
- RespHeader  Date: Mon, 07 Nov 2016 08:38:28 GMT 
- RespHeader  X-Varnish: 658516 658416 
- RespHeader  Age: 157 
- RespHeader  Via: 1.1 varnish-v4 
- VCL_call  DELIVER 
- RespHeader  X-Varnish-Cache: HIT 
- VCL_return  deliver 
- Timestamp  Process: 1478508065.780379 0.000047 0.000047 
- RespHeader  Accept-Ranges: bytes 
- Debug   "RES_MODE 2" 
- RespHeader  Connection: keep-alive 
- Timestamp  Resp: 1478508065.780411 0.000079 0.000032 
- ReqAcct  415 0 415 393 4774 5167 
+0

versuchen, das erste grep-Muster in Klammern zu schreiben. so: '(ReqURL | Varnish-Cache)'. auch UNIX-Version und ein Teil von varnishlog -c-Ausgabe wäre sehr hilfreich – sotona

+0

könnten Sie versuchen, -u ungepufferte Ausgabe. wie Lacklog -cu ... –

+0

@Sotona, versuchte ich mit Klammern, aber das gleiche Problem. Ich habe meinen Beitrag mit der Beispielausgabe des Befehls aktualisiert. – user3181365

Antwort

3

können Sie --line-gepufferte Option mit grep, wie unten verwenden;

sudo varnishlog -c | grep --line-buffered -E 'ReqURL|Varnish-Cache' | grep --line-buffered 'HIT' 

man grep;

--line-gepuffert Zeilenpufferung am Ausgang verwenden. Dies kann zu einer Leistungseinbuße führen.

+0

Können Sie bitte überprüfen Sie meinen anderen Beitrag - http://StackOverflow.com/Questions/40462153/Grep-Multiple-Strings-and-then-Replace-Text Antwort wird von Inian, mit ähnlichen Problem gegeben, aber die dort verwendeten Befehle sind ' awk' und 'sed' mit wile loop – user3181365

Verwandte Themen