我正在寻找一种可靠的解决方案来为测试自动化进行包捕获。
现在,tcpdump 已与以下命令一起使用。
sudo tcpdump -i ens160 -w filename.pcap -G 60 -W 1
我停止 tcpdump:
kill -s SIGINT <pid>
20 次中有 1 次 tcpdump 无法正常退出,pcap 文件将被损坏。
有什么方法可以确保 tcpdump 正确退出?
我正在寻找一种可靠的解决方案来为测试自动化进行包捕获。
现在,tcpdump 已与以下命令一起使用。
sudo tcpdump -i ens160 -w filename.pcap -G 60 -W 1
我停止 tcpdump:
kill -s SIGINT <pid>
20 次中有 1 次 tcpdump 无法正常退出,pcap 文件将被损坏。
有什么方法可以确保 tcpdump 正确退出?
有两种方法可以避免截断转储文件:
正如 Doug Smythies 所建议的,使用终止信号 (
SIGTERM
) 而不是SIGINT
终止tcpdump
进程:告诉
tcpdump
在保存每个数据包时将数据包直接写入文件(选项-U
)。这样,即使使用 SIGINT,文件也不会被截断。从man tcpdump: