Я пытаюсь получить отладочный вывод
- что значит "найти"
- по сравнению с тем, что происходит в сети (tshark)
Поэтому я хочу запускать эти команды параллельно и тщательно отсортировать вывод по времени.
Я сделаю это:
{
stdbuf -oL tshark -tad -l -n -s 9999 хост x | ts '[TSRK %Y-%m-%d %H:%M:%.S]' &
спать 5
stdbuf -oL найти . -тип d 2>&1 | ts '[НАЙТИ %Y-%m-%d %H:%M:%.S]' &
} >/корень/выход
Основная проблема: вывод Tshark отстает
# stdbuf -oL tshark -tad -l -n | ts '[TSRK %Y-%m-%d %H:%M:%.S]'
[TSRK 2021-08-18 17:40:56.206744] 2 2021-08-18 17:40:55.477802058 00:04:96:xx:xx:xx â ff:ff:ff:ff:ff:ff ARP 64 У кого 172.31.x.x? Скажите 172.31.x.x
Сравните отметку времени ts ([ЦРК 2021-08-18 17:40:56.206744]
) к одному из tshark (2021-08-18 17:40:55.477802058
)
Выход отстает.
Объединенный журнал выводит результат поиска перед отображением вывода tshark.
Хотя, очевидно, сетевая активность должна предшествовать результату найти
.
я тоже пробовал параллельно
параллель --line-buffer ::: \
'stdbuf -oL tshark -tad -l -n -s 9999 хост x | ts "[TSRK %Y-%m-%d %H:%M:%.S]" ' \
'stdbuf -oL найти. -тип д | ts "[НАЙТИ %Y-%m-%d %H:%M:%.S]" ' \
>/корень/outpar
но внешний инструмент, похоже, не исправляет то, что явно не так с внутренним инструментом... Результат тот же.
Как мне это сделать правильно?