«Дай мне» не уведет тебя далеко сюда. Может быть, вы должны показать нам, что вы пробовали до сих пор и где именно у вас есть проблемы, которые вы не можете решить самостоятельно.
Матиас Крулл
Команда bash, которую вы хотите, это: "man tcpdump"
Уильям Перселл
Ответы:
15
Если вы просто хотите, чтобы tcpdump запускался в течение n секунд, а затем выходил, вы можете использовать тайм-аут.
Например:
timeout 2 tcpdump -eni mon0
В противном случае я не верю, что tcpdump имеет возможность сделать это.
К сожалению, команда timeout отсутствует в CentOS 5.x. Он был добавлен в более новую версию coreutils. Еще одна мотивация для меня, чтобы обновить ОС.
Mister_Tom
Я полагаю, если у вас нет тайм-аута, вы могли бы вместо этого создать что-то вроде тайм-аута с помощью сценария:
siesta
Прекрасно работает для меня. Я использовал это, чтобы контролировать весь трафик для программы, которая не работала. Я запустил tcpdump с таймаутом N секунд. Затем я запустил программу (которая занимает до N секунд).
Тревор Бойд Смит
Вопрос просит захватить последние N секунд. Ваш ответ говорит, как захватить первые N секунд.
Хлипкий
3
Я думаю, что лучший способ сделать это с помощью флага -G tcpdump, который при использовании с -w будет сохранять ваш дамп в новый файл каждые N секунд. Например:
tcpdump -w outfile-% s -G 10
Это создаст новый файл с именем 'outfile-XXXX' (где XXXX представляет количество секунд с начала эпохи) каждые 10 секунд.
Смотрите man-страницы для tcpdump (8) и strftime (3) для получения дополнительной информации.
tcpdump 3.9.4, поставляемый с CentOS 5.10, не имеет опции -G. Мне действительно нужно обновить мою ОС.
Mister_Tom
-G не останавливает команду tcpdump. Это все еще работает вечно. Тайм-аут 2 tcpdump остановит команду через 2 секунды.
Цицерон
@ciceron: Вопрос не в том, чтобы остановить tcpdump. Это было о захвате последних N секунд . Ваше предложение будет захватывать первые N секунд. Решительно не то, что попросил ОП.
Хлипкий
1
Вы можете использовать tethereal вместо tcpdump. Вы можете использовать эту опцию командной строки:
Хотя это может ответить на вопрос, было бы лучше, если бы вы могли объяснить, почему это так.
ДэвидПостилл
Сам tcpdump не допускает ограниченную по времени трассировку пакетов, но tshark делает. (примечание: после того, как этот вопрос был задан и получен ответ, Ethereal стал Wireshark), он tshark -a duration:600 -i eth0 -w $(hostname).10mins.pcapполучит за десять минут трафика из интерфейса eth0 в файл $ (имя хоста) .10mins.pcap
Эндрю Билс
0
tcpdump options -w new.tcpdump
ps -ef |grep tcpdump
принять к сведению PID, скажем, это 11193
at 11:00
kill 11193
теперь просто подождите до 11:00 и ваш захват будет убит, но сохранен
sudo tcpdump -i -w & это запустит tcpdump в спящем режиме
w: сохранить вывод в файле .pcap &: tcpdump будет выполняться в режиме ожидания. Примечание: убедитесь, что у вас достаточно свободного места, если хотите. запустить его на некоторое время. Он не прервется, если выйдет из системы, пока вы не убьете процесс.
Ответы:
Если вы просто хотите, чтобы tcpdump запускался в течение n секунд, а затем выходил, вы можете использовать тайм-аут.
Например:
В противном случае я не верю, что tcpdump имеет возможность сделать это.
источник
Я думаю, что лучший способ сделать это с помощью флага -G tcpdump, который при использовании с -w будет сохранять ваш дамп в новый файл каждые N секунд. Например:
tcpdump -w outfile-% s -G 10
Это создаст новый файл с именем 'outfile-XXXX' (где XXXX представляет количество секунд с начала эпохи) каждые 10 секунд.
Смотрите man-страницы для tcpdump (8) и strftime (3) для получения дополнительной информации.
источник
Вы можете использовать tethereal вместо tcpdump. Вы можете использовать эту опцию командной строки:
источник
tshark -a duration:600 -i eth0 -w $(hostname).10mins.pcap
получит за десять минут трафика из интерфейса eth0 в файл $ (имя хоста) .10mins.pcaptcpdump options -w new.tcpdump
ps -ef |grep tcpdump
принять к сведению PID, скажем, это 11193
at 11:00 kill 11193
теперь просто подождите до 11:00 и ваш захват будет убит, но сохранен
источник
Я пытался решить ту же проблему, поэтому я написал переносимый скрипт для запуска tcpdump в течение n секунд.
Использование ./tcpdump_for_n_sec.sh sec аргументы для tcpdump
источник
sudo tcpdump -i -w & это запустит tcpdump в спящем режиме
источник