Вы могли создать обертку в ударе, перенаправить вывод, ожидают в файл, анализируют файл и устанавливают переменные. Или изменения этого.
mark5:~/test# cat test.xp
send "bla\n"
mark5:~/test# expect test.xp
bla
mark5:~/test# expect test.xp > test.out
mark5:~/test# cat test.out
bla
mark5:~/test# #now parse test.out
Хорошо, кажется, я нашел решение :
sudo tcpdump -XX -i eth0 -w tcpamir-%s.txt -G 10 port 3050
Это вращает Ваш выходной файл каждые 10 секунд в новый файл под названием tcpamir-
Вы также можете изменить выходной файл, поэтому он перезаписывается каждый день, если вас беспокоит размер файла. Для дополнительной информации читайте man 3 strftime
.
Я думаю о чем-то вроде
sudo tcpdump -XX -i eth0 -w tcpamir-%R.txt -G 86400
Где %R
дает время в 24-часовой нотации (например, 12:40).
Читайте соответствующие выходные файлы с помощью
sudo tcpdump -r tcpamir-<unixtimestamp>.txt
Второе решение:
Разделите его на несколько команд и сохраните как скрипт/функцию:
sudo tcpdump -XX -i eth0 port 3050 >> tcptmp.txt
sudo tail -n100 tcptmp.txt >> tcpamir.txt
sudo rm tcptmp.txt
Если вы хотите записать весь захваченный трафик, вам нужно только добавить -w к строке удаления '| tail >> tcpamir.txt'
# tcpdump -XX -i eth0 port 3050 -w tcpamir.cap
Если вы анализируете захват в wireshark, то расширение должно быть .cap Когда вы убедитесь, что захват сделан, вы можете убить его с помощью ctrl + c
NOTE: -w [filename.cap], чтобы записать захват в файл