我正在使用varnishlog命令并尝试过滤某些字段:
sudo varnishlog -c | grep -E 'ReqURL|Varnish-Cache'
- ReqURL /sample/2
- RespHeader X-Varnish-Cache: HIT
- ReqURL /sample/2
- RespHeader X-Varnish-Cache: HIT
现在,如果我使用另一个grep命令,我会得到空结果:
sudo varnishlog -c | grep -E 'ReqURL|Varnish-Cache' | grep 'HIT'
你能帮我解决一下这里的问题吗?
命令的示例输出: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 :(得分:3)
你可以使用grep的--line-buffered选项,如下所示;
sudo varnishlog -c | grep --line-buffered -E 'ReqURL|Varnish-Cache' | grep --line-buffered 'HIT'
man grep;
- 行缓冲 在输出上使用行缓冲。这可能会导致性能下降。