如何检查tcpdump是否清除了任何数据包?

时间:2019-06-17 18:35:10

标签: bash tcpdump

我正在尝试查看系统是否启动。为了实现此目的,我可以使用tcpdump命令查看捕获的数据包,并使用它来验证系统当前是否正常运行。但是,我正在尝试将其合并到脚本中,但不确定如何将其放入条件中。

我曾经尝试过使用netcat,但似乎根本无法正常工作,因此我目前仅尝试使用tcpdump,因为至少这样做有效。

这是可以使用的tcpdump命令,但是在合并到if条件条件中时遇到困难

tcpdump -i eth0 "udp port 69420"

以下是我要完成的操作的伪代码:

if tcpdump captured any packets 
   echo "system is up"

1 个答案:

答案 0 :(得分:2)

这是一个阻止代码,它将继续监听端口上的数据包,直到收到第一个数据包为止。

if tcpdump -i eth0 "udp port 69420" -c 1 ;then
     echo "system is up"
 fi
  

用法:tcpdump [-aAdDeflLnNOpqRStuUvxX] [-c计数] [-C file_size]                   [-E algo:secret] [-F文件] [-i接口] [-M秘密]                   [-r文件] [-s snaplen] [-T类型] [-w文件]                   [-W filecount] [-y datalinktype] [-Z用户]                   [表情]

PS:tcpdump通常不像这样使用(连续监视),它是一种资源穷尽的工具,应用于调试目的。