在多文件模式下压缩tshark的输出

我运行tshark转储无线stream量。 我目前在多个文件模式下运行,将输出分成50MB块。 有什么办法可以让这些50MB大块压缩成像gzip或lzma这样的东西?

我意识到,在单文件模式下,我可以将输出从tshark传输到gzip然后分割,但是我希望每个pcap文件都可以自行读取,而不需要解压缩压缩文件的每个部分。

我刚才正在调查同样的问题..我不知道你是否find你的解决scheme,但我最终使用Linux bash脚本来解决这个问题..

下面是脚本..

#!/bin/bash FILENO=300 COUNTER=0 while [ $COUNTER -lt $FILENO ]; do sudo tshark -i any -a duration:300 -a filesize:500000 -w - | gzip -9 -f > TRACE/trace_$COUNTER.gzip let COUNTER=(COUNTER+1)%FILENO done 

Wireshark可以用zlib支持编译,所以Wiresharkgraphics应用程序和tshark命令行应用程序都可以读取gzip文件。

这里是我捕捉stream量:

 # tcpdump -n -i br0 -w tcpdump.pcap tcpdump: listening on br0, link-type EN10MB (Ethernet), capture size 65535 bytes ^C281 packets captured 281 packets received by filter 0 packets dropped by kernel 

然后压缩它:

 $ gzip tcpdump.pcap $ ls -lgo total 88 -rw-r--r--. 1 89875 Jul 24 22:11 tcpdump.pcap.gz 

并直接从压缩文件中读取:

 $ tshark -nr tcpdump.pcap.gz | head -n5 1 0.000000 192.168.1.69 41342 192.168.1.1 53 DNS 75 Standard query 0x1716 A plus.google.com 2 0.004990 192.168.1.1 53 192.168.1.69 41342 DNS 251 Standard query response 0x1716 A 74.125.237.134 A 74.125.237.135 A 74.125.237.136 A 74.125.237.137 A 74.125.237.132 A 74.125.237.129 A 74.125.237.128 A 74.125.237.130 A 74.125.237.133 A 74.125.237.142 A 74.125.237.131 3 0.005274 192.168.1.69 54794 74.125.237.134 443 TCP 74 54794 > 443 [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=612252515 TSecr=0 WS=128 4 0.024052 74.125.237.134 443 192.168.1.69 54794 TCP 74 443 > 54794 [SYN, ACK] Seq=0 Ack=1 Win=42540 Len=0 MSS=1376 SACK_PERM=1 TSval=639245311 TSecr=612252515 WS=64 5 0.024078 192.168.1.69 54794 74.125.237.134 443 TCP 66 54794 > 443 [ACK] Seq=1 Ack=1 Win=29312 Len=0 TSval=612252534 TSecr=639245311