Как проверить, что tcpdump перехватил какие-либо пакеты? - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь проверить работоспособность системы.Чтобы добиться этого, я могу использовать команду tcpdump, чтобы увидеть перехваченные пакеты, и использовать это, чтобы проверить, что система в данный момент работает.Тем не менее, я пытаюсь включить это в сценарий, и я не уверен, как поместить эту логику в условное выражение.

Я пытался использовать netcat, но я не могу заставить его работатьвсе, поэтому я только пытаюсь использовать tcpdump на данный момент, потому что по крайней мере это работает.

Вот команда tcpdump, которая работает, но у меня возникают проблемы при включении в условное условие

tcpdump -i eth0 "udp port 69420"

Вот некоторый псевдокод относительно того, что я пытаюсь выполнить:

if tcpdump captured any packets 
   echo "system is up"

1 Ответ

2 голосов
/ 17 июня 2019

Это код блокировки, и он будет продолжать прослушивать пакеты в порту до получения 1-го пакета.

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

Использование: tcpdump [-aAdDeflLnNOpqRStuUvxX] [- c count] [-C file_size] [-E algo: secret] [-F file] [-iinterface] [-M secret] [-r file] [-s snaplen] [-T type] [-w file] [-W filecount] [-y datalinktype] [-Z пользователь] [выражение]

PS: tcpdump обычно не используется таким образом (непрерывный мониторинг), это исчерпывающий ресурс, инструмент, и его следует использовать для целей отладки.

...