如何检查 tcpdump 是否捕获了任何数据包?

How to check if tcpdump catpured any packets?

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

我试过使用 netcat,但我似乎根本无法让它工作,所以我现在只尝试使用 tcpdump,因为至少它可以工作。

这是有效的 tcpdump 命令,但我无法将其合并到 if 条件中

tcpdump -i eth0 "udp port 69420"

这是一些关于我要完成的事情的伪代码:

if tcpdump captured any packets 
   echo "system is up"

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

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

Usage: tcpdump [-aAdDeflLnNOpqRStuUvxX] [-c count] [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -i interface ] [ -M secret ] [ -r file ] [ -s snaplen ] [ -T type ] [ -w file ] [ -W filecount ] [ -y datalinktype ] [ -Z user ] [ expression ]

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