Труба Sed Sash, чтобы Командовать Однострочником

0

Я пытаюсь сбросить вывод со всех моих интерфейсов. Это то, что у меня так далеко:

ifconfig | awk '{print $1}' | sed s'/.$//'

Я хотел бы иметь что-то вроде:

ifconfig | awk '{print $1}' | sed s'/.$//' | tcpdump -i {} -c 1

где {} - это то, что передается в трубе.

ОБНОВИТЬ:

Вот пример выходных данных ifconfig:

em0: encaps: эфир; обрамление: эфир
        флаги = 0x3 / 0x8000 
        curr media: i802 2: 0: 0: 1: 0: 4
em0.0: flags = 0x8000 
        первичный inet mtu 1500 local = 129.16.0.1 dest = 128.0.0.0 / 2 bcast = 191.255.255.255
        ТНП первичный МТУ 1500 местный = 17825796

awk выведет имя интерфейса, которое мне нужно передать в tcpdump.

Эквивалентный запуск приведенного выше кода будет:

tcpdump -i em0
tcpdump -i em0.0

Как я могу передать в tcpdump в одну строку?

user3063045
источник
Это было бы правильно, если бы был только один интерфейс. К сожалению, ВСЕ системы имеют как минимум 2 :)
user3063045
Можете ли вы предоставить пример вывода вашего ifconfig и предполагаемого содержимого {} в tcpdump?
guest-vm

Ответы:

1
ifconfig | grep -Po "^ [^ \ s:] +" | пока читай если; сделать tcpdump -i $ if; сделанный
# tcpdump -i em0
# tcpdump -i em0.0

tcpdump `ifconfig | grep -Po "^ [^ \ s:] +" | sed "s / ^ / - i /" `
# tcpdump -i em0 -i em0.0
гость-VM
источник
0

Я пытаюсь сбросить вывод со всех моих интерфейсов.

Есть ли какая-то причина, по которой вы не просто используете специальное устройство с именем any? IE tcpdump -i any.

http://www.tcpdump.org/tcpdump_man.html -i интерфейс

Слушай по интерфейсу. Если не указано, tcpdump ищет в системном списке интерфейсов настроенный интерфейс с наименьшим номером (исключая обратную связь), который может оказаться, например, eth0''. On Linux systems with 2.2 or later kernels, an interface argument ofлюбым '', который может использоваться для захвата пакетов со всех интерфейсов. Обратите внимание, что захват на любом устройстве не будет выполняться в случайном режиме.

Zoredache
источник
Хорошее мышление, но это не доступно в моей версии tcpdump.
user3063045 30.06.16
Какую версию tcpdump и какую ОС вы используете? Это почти наверняка имеет большое значение, так как вывод ifconfig не является полностью стандартным для всех * nix систем.
Зоредаче
-Я не просто перебираю все интерфейсы. Я пробовал на OSX и CentOS и выдает ошибку, если я не ставлю имя интерфейса
user3063045