2013-02-21 4 views
0

У меня есть в основном две строки кода, которые являются:Можно ли запускать две программы одновременно или один за другим с помощью сценария bash или expect?

tcpdump -i eth0 -s 65535 -w - >/tmp/Captures 

tshark -i /tmp/Captures -T pdml >results.xml 

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

Однако я пытался создать простой скрипт bash, который будет выполнять их одновременно, но не повезло. Bash скрипт выглядит следующим образом:

#! /bin/bash 
tcpdump -i eth0 -s 65535 -w - >/tmp/Captures & 

tshark -i /tmp/Captures -T pdml >results.xml & 

Если кто-то может помочь в получении этого работать или получать его «бежать ТСРйитр, пока клавиша не будет нажата, а затем запустить tshark тогда, когда клавиша нажата снова близко.»

У меня есть только немного опыта работы с bash.

ответ

1

Вам нужно запустить tcpdump и tshark отдельно? Использование команды pipe будет подавать вывод tcpdump на вход tshark.

tcpdump -i eth0 -s 65535 | tshark -T -pdml > results.xml 
+0

В этом случае зачем запускать 'tcpdump' вообще? Просто разрешите 'tshark' делать захват и форматировать вывод ... – twalberg

+0

Спасибо за ответ. Это сработало! Не могу поверить, что я об этом не думал. Также спасибо twalberg за вклад, но это для небольшого проекта, над которым я работаю, и мне нужно использовать tcpdump и tshark. :) – InvertReality