#shell #tcpdump #zcat #process-substitution
#оболочка #tcpdump #zcat #процесс-подстановка
Вопрос:
Если я напишу следующую команду в терминале, она будет работать идеально
tcpdump -w 1.pcap -nnr <( zcat /work/save1.pcap.gz ) '((tcp[13]==2 or tcp[13]==4) and (dst port 80)) or (udp and dst port 5060)'
Если я помещаю это в скрипт, я получаю ошибку типа «неожиданно» («в строке …»
У меня нет точной строки ошибки, потому что я работаю на сервере через ssh, и теперь у меня нет к нему доступа. Сервер должен работать на BSD, и прямо сейчас я не знаю, какая оболочка используется.
Мне нужно поместить такие строки в скрипт, потому что мне нужно выполнить эту команду на большом количестве pcap.gz файлы.
Комментарии:
1. можете ли вы перенаправить файл .gz в
tcpdump
вместо этого через канал? т. е.gunzip -c pcap.gz | tcpdump ...
? Тогда вы устранили наиболее похожую причину сообщения об ошибке «unexpected» («»). Удачи.2. в конце концов, я использовал ваше решение, потому что оно имеет тот же эффект. Я также обнаружил, почему мой подход не сработал: linuxquestions.org/questions/programming-9 /…
3. вот почему полезно опубликовать вопрос с наименьшим объемом кода, который любой может запустить и увидеть ту же проблему. Если бы мы видели, где вы используете
#!/bin/sh
, мы могли бы посоветовать вам. Удачи!