Обработка временных меток вывода tcpdump в режиме реального времени

Я хотел бы сохранить файл, который содержит количество секунд, так как был обнаружен пакет, соответствующий фильтру tcpdump. Цель состоит в том, чтобы работать, когда чатный клиент больше не работает в сети. Когда я перестаю видеть мусор MDNS, я уверен, что его нет.

sudo tcpdump -l -tttt -i wlan0 port 5353 and src <hostname> | cut -c -19 | xargs -0 -n1 ./timesec.sh 

Это то, что у меня есть до сих пор. timesec.sh будет использовать входной аргумент в date -d чтобы сравнить с сохраненной датой из файла, а затем обновить количество секунд файла.

Однако он не работает, и я подозреваю, что выход из cut не является трубопроводом, как я ожидаю.

One Solution collect form web for “Обработка временных меток вывода tcpdump в режиме реального времени”

Я думаю, вам нужно удалить -0 из командной строки xargs. -0 используется для разделения полей по завершению нулевой точки, и, насколько я знаю, cut не поддерживает это. Вместо этого я предлагаю использовать -d '\n' для прекращения полей при разрывах строки:

 ... | cut -c -19 | xargs -d '\n' -n1 ./timesec.sh 

Из документов

-0

Элементы ввода заканчиваются нулевым символом, а не пробелом, а кавычки и обратная косая черта не являются специальными (каждый символ берется буквально). Отключает конец строки файла, который обрабатывается как любой другой аргумент. Полезно, когда входные элементы могут содержать пробелы, кавычки или обратную косую черту. Опция GNU find -print0 создает вход, подходящий для этого режима.

–delimiter = DELIM

-d delim

Элементы ввода заканчиваются указанным символом. Котировки и обратная косая черта не являются особенными; каждый символ ввода вводится буквально. Отключает строку конца файла, которая рассматривается как любой другой аргумент. Это можно использовать, когда вход состоит из простых элементов, разделенных символом новой строки, хотя почти всегда лучше разрабатывать вашу программу для использования –null, где это возможно. Указанный разделитель может быть единственным символом, escape-символом типа C, таким как \ n или восьмеричным или шестнадцатеричным кодом возврата. Октальные и шестнадцатеричные коды возврата понимаются как команда printf. Многобайтные символы не поддерживаются.

  • Как удалить все, кроме последних 10 файлов
  • Как выполнить выходную строку без замены команды bash?
  • xargs игнорирует второй параметр скрипта
  • Есть ли способ манипулировать порядком аргументов stdin при использовании xargs, так же, как awk как $ 0, $ 1, $ 2 и т. Д.?
  • Как распределить вычисления «tar czf» в течение длительного времени?
  • Несколько аргументов с использованием xargs.
  • Формат вывода xargs
  • Команда xargs приводит к sed:;: Нет такого файла или каталога
  • Найти изображения по размеру: find / file / awk
  • Есть ли команда Unix для цитирования строк ввода?
  • правильное параллельное использование xargs
  • Linux и Unix - лучшая ОС в мире.