背景:
使用tcpdump命令抓包,每当数据文件达到100M,停止抓包,压缩文件。抓包命令如下:
tcpdump -i br0 -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420' -w $filename & tdid='pgrep tcpdump'
现象:
但是昨天出现一台设备,没有产生新的数据包。
原因:
使用命令:
ps -ef |grep tcpdump
查看进程,发现tcpdump进程已经不在了。
查看nohup日志,发现如下内容
tcpdump: pcap_loop: The interface went down
169706 packets captured
170042 packets received by filter
167 packets dropped by kernel
百度上查到这样一段信息:
However if there is any kind of disruption to the physical link, tcpdump exits with the following error
但是,如果物理链路出现任何中断,tcpdump将退出并显示以下错误:
大概是因为网络问题导致的中断吧。
解决办法:
除了判断文件大小外,同时判断执行时间,条件修改为:文件达到100M或者抓包时间达到10分钟,然后重启tcpdump