Я хотел бы отслеживать сетевые интерфейсы, но регистрировать только такие вещи, как ошибки, коллизии и потерянные пакеты. Отправьте это на стандартный вывод. - Можно ли настроить tcpdump для этого?
Нет.
У вас есть много возможностей фильтрации в tcpdump, но то, что вы просите, может быть отфильтровано только тогда, когда у вас будет больше данных. Как я могу узнать, является ли пакет повторной передачей, если я не зарегистрировал исходный? Вся логика, применяемая к захвату PCAP, выполняется, например, Wireshark после этого и с учетом всего захвата.
Возможно, вам будет лучше записывать трафик в связанные файлы, скажем размером 1 ГБ, и запускать какой-нибудь инструмент анализа, например tshark, из командной строки в отдельном процессе, который идет файл за файлом. Оттуда вы можете получить действительно хороший результат.
Например. показать повторно переданные пакеты, включая IP-адрес источника и назначения:
tshark -Y "tcp.analysis.retransmission" -Tfields -e ip.src -e ip.dst
Вы можете использовать netstat в сочетании с командой watch linux / unix, чтобы заранее увидеть ошибки в реальном времени.
например
watch -n 2 netstat -in
И если вы хотите регистрировать ошибки интерфейса, лучше получить информацию из proc.
например используя eth1
cat /proc/net/dev | grep eth1 >> interface_errors_eth1
netstat -ni
ваш лучший друг для ошибок Tx / Rx (например, отброшенных пакетов на уровне сетевой карты / драйвера / ОС). Как они уже сказали, столкновения происходят на более низком уровне, и я думаю, их следует отслеживать на переключателе.