Вы можете попробовать запустить скрипт, который запускает 2 экземпляра dumpcap
, один для захвата всего трафика в кольцевой буфер ограниченной продолжительности и файлов, а другой - просто для ожидания события захватаобсуждаемый. Как только происходит событие захвата, 2-й экземпляр dumpcap
может завершиться, спать в течение 1 минуты, а затем оставшийся экземпляр dumpcap
может быть уничтожен. Например:
#!/bin/sh
echo "Starting capture instance ..."
dumpcap -i eth0 -f "TBD Capture Filter" -b duration:180 -b files:2 -w file.pcapng &
echo "Starting event instance ..."
dumpcap -i eth0 -f "TBD Event Capture Filter" -c 1
echo "Got event; sleeping for 60 seconds ..."
sleep 60
echo "Killing all dumpcap instances ..."
killall dumpcap
echo "Done."
После завершения захвата у вас должно быть до 2 файлов, содержащих данные за последние 6 минут (максимум). Вы даже можете добавить команду mergecap
к сценарию, чтобы объединить 2 файла, если хотите: mergecap -F pcapng file.pcapng file_*.pcapng
.
И в случае, если 2-й экземпляр dumpcap
оставит позадивременный файл захвата, вы также можете очистить его, если хотите, например, rm -f /tmp/wireshark*