我使用elasticsearch很多,我需要一種方法來查看對elasticsearch服務器的請求。試圖清理我的ElasticSearch跟蹤器輸出
所以我發現這個bash腳本:
sudo tcpdump -A -nn -s 0 'tcp dst port 9200 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' -i lo
效果很好,問題是它輸出了大量的垃圾:
11:40:49.690863 IP 127.0.0.1.50270 > 127.0.0.1.9200: Flags [P.], seq 2594084191:2594084256, ack 2674569216, win 342, options [nop,nop,TS val 910075 ecr 910075], length 65
[email protected]@............^#...._.j.....V.i.....
..HEAD/HTTP/1.1
Host: localhost:9200
Connection: keep-alive
11:40:49.707181 IP 127.0.0.1.50271 > 127.0.0.1.9200: Flags [P.], seq 3009491178:3009491248, ack 3451175088, win 342, options [nop,nop,TS val 910080 ecr 910079], length 70
[email protected]@.jc........._#..a0........V.n.....
..GET /_nodes HTTP/1.1
Host: localhost:9200
Connection: keep-alive
11:40:52.215800 IP 127.0.0.1.50272 > 127.0.0.1.9200: Flags [P.], seq 148869443:148869508, ack 2833610757, win 342, options [nop,nop,TS val 910707 ecr 910707], length 65
[email protected]@..M.........`#....C..x....V.i.....
.sHEAD/HTTP/1.1
Host: localhost:9200
Connection: keep-alive
我只是想保持JSON。
所以我雖然要去消除。
我加入這個表達式:
sudo tcpdump -A -nn -s 0 'tcp dst port 9200 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' -i lo | grep -v "[0-9]{2}[:][0-9]{2}[:][0-9]{2}\.[0-9]*[ ][I][P][ ][0-9]{1,3}\.[0 -9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]*[ ][\>].*"
這裏是行動的正則表達式:https://regex101.com/r/aS6kS2/1
不管怎麼說,我想在這裏完成是去除:
11:40:49.707181 IP 127.0.0.1.50271 > 127.0.0.1.9200: Flags [P.], seq 3009491178:3009491248, ack 3451175088, win 342, options [nop,nop,TS val 910080 ecr 910079], length 70
[email protected]@.jc........._#..a0........V.n.....
..GET /_nodes HTTP/1.1
Host: localhost:9200
Connection: keep-alive
使只保留body/JSON。
我試圖一行一行,但現在它甚至不刪除第一個是我的正則表達式的目標。
嗯,我希望我沒有這樣做,我已經回滾了所有的編輯,但是我仍然在'grep -v'字符串的中間看到'[0-9]'。對不起,如果我把它搞瞎了。另外,您可能希望從示例輸入中顯示所需的輸出(JSON)。祝你好運。 – shellter
不要以爲我們知道'body/JSON'是什麼。我沒有看到你得到的和你想要刪除的東西之間的區別,除了空行。只需發佈簡潔,可測試的示例輸入和預期輸出,並對您希望實現的轉換進行解釋,更廣泛的受衆羣體將能夠爲您提供幫助。 –
通過刪除我顯示的行,唯一會留下的將是JSON。我正在嘗試構建一個黑名單過濾器。 – jnbdz