tcpdump,带有-w -C -G和-z选项

时间:2018-08-07 16:27:05

标签: gzip pcap tcpdump

我试图获取连续的跟踪记录,这些记录被写入受持续时间(-G选项)和大小(-C选项)限制的文件中。使用-w选项自动命名文件,最后使用-z gzip选项压缩文件。总共是:

tcpdump -i eth0 -w /home/me/pcaps/MyTrace_%Y-%m-%d_%H%M%S.pcap -s 0 -C 100 -G 3600 -Z root -z gzip &

问题在于,使用-C选项时,当前文件计数会附加到名称上,因此我最后看到的文件末尾为.pcap2.gz .pcap3.gz .pcap4.gz,依此类推。我更希望它们的结尾为: _2.pcap.gz _3.pcap.gz _4.pcap.gz, etc.

但是,如果我从-w选项中删除.pcap,我将以2.gz 3.gz 4.gz

结束

如果我可以在“ -z”命令中加入诸如-z "gzip -S .pcap.gz"之类的选项,以便gzip本身附加.pcap,或者我可以使用诸如pcap_gzip="gzip -S .pcap.gz"之类的别名,然后再加上{{1 }},但是这两个选项似乎都不起作用,后者会产生此错误:-z pcap_gzip

2 个答案:

答案 0 :(得分:0)

我发现尽管别名不起作用,但我能够将相同的命令放入脚本中并通过tcpdump -z调用脚本。

pcap_gzip.sh:

#!/bin/bash
gzip -S .pcap.gz "$@"

然后: tcpdump -i eth0 -w /home/me/pcaps/MyTrace_%Y-%m-%d_%H%M%S -s 0 -C 100 -G 3600 -Z root -z pcap_gzip.sh &

答案 1 :(得分:0)

我今天在CentOS6中遇到了同样的问题。我找到了您的问题,但是答案对我没有用。 实际上,只需稍作调整即可,例如,写入已保存文件名的绝对路径和要执行的脚本的名称,例如

tcpdump -i em1 ... -s 0 -G 10 -w '/home/Svr01_std_%Y%m%d_%H%M%S.pcap' -Z root -z /home/pcapup2arcive.sh