Я надеюсь, что смогу захватывать вращающийся вывод tcpdump, который собирает данные за 30 минут, в 48 файлов, циклически.
Страница man подразумевает, что это должно быть возможно, но мое тестирование не дает желаемого результата:
-W
Используемый вместе с этой
-C
опцией, это ограничит количество файлов, созданных указанным числом, и начнет перезаписывать файлы с самого начала, создавая таким образом «вращающийся» буфер. Кроме того, он будет называть файлы с достаточным начальным 0, чтобы поддерживать максимальное количество файлов, что позволяет их правильно сортировать.Используемый вместе с этой
-G
опцией, это ограничит количество создаваемых повернутых файлов дампа, выходя из состояния 0 при достижении лимита. При использовании с-C
этим поведением также будут циклические файлы для каждого временного интервала.
Я использую это на клиентах OS X 10.9.5 / 10.10.3. Вот тестовая команда; он просто выходит после 3-го файла:
tcpdump -i en0 -w /var/tmp/trace-%Y-%M-%d_%H.%M.%S.pcap -W 3 -G 3 -C -K -n
Ответы:
Это потому что ты написал
-W 3
вместо-W 48
. Однако в вашей команде есть и другие ошибки.Опция
-G
означает:Так как вы написали
-G 3
, вы будете вращать это каждые 3 секунды, пока вы заявилиКроме того, схема именования неверна: из вышесказанного,
Таким образом, нет смысла указывать формат времени для имени.
Кроме того,
-C
опция не имеет аргументов, в то время как, согласно man-странице , она должна:На странице руководства государства:
Таким образом, вы должны указать
-C 100
, чтобы производить 100 МБ файлов.В конце ваша команда должна быть:
Это будет вращать файлы (с именами trace1, trace2, ...) циклически, с периодом 48, либо каждые 1800 секунд (= 30 минут), либо каждые 100 МБ, в зависимости от того, что произойдет раньше.
источник
If no time format is specified, each new file will overwrite the previous.
(я обновил ответ.)Расширение после ответа flabdablet (переход
-G 1800
на-G 300
- вращение каждые пять минут - только для целей тестирования),даст вам
%m=month
,%d=day of month
,%H=hour of day
,%M=minute of day
,%S=second of day
,%s=millisecond of day
, в результате чегоОчень полезно для организации следов для тех надоедливых прерывистых проблем. Кроме того, если вы не root, вы можете захотеть
sudo
и, конечно, сделать это nohup:источник
Сдается мне, что все, что вам нужно, это
Спецификатор формата strftime, который -G ожидает в имени -w файла, не должен представлять полную дату и время. При наличии только% H и% M и времени поворота ровно полчаса, любой данный вызов tcpdump будет когда-либо генерировать только два разных значения% M с интервалом в полчаса, а файлы трассировки вчера будут перезаписаны в тот же час и минуты снова вращаются.
источник
После некоторых экспериментов я не смог заставить @MariusMatutiae работать так, как ожидалось. Если время стало ограничивающим фактором и без добавления формата времени к имени файла, то текущий файл pcap просто перезаписывается.
Например, попробуйте:
Все, что вы в конечном итоге
trace.pcap0
, пишется снова и снова.Как предлагается в комментарии, если вы добавите форматирование времени к имени файла, то вы просто получите и каждый растущий список файлов.
Поэтому мне пришлось придерживаться простых файлов с ограниченным размером:
источник
Да, похоже, это не работает, как говорится в ответе MariusMatutiae .
Мне кажется, что он может захватывать как можно больше
-C 100
файлов МБ за 30-минутный период, потому чтоhttpdebug.pcap03
имеет самую раннюю временную метку и намного меньше, чем 100 МБ, поэтому кажется, что она была вырезана с 30-минутной отметкой. Как только он достигает 30 минут, кажется, что он возвращается кhttpdebug.pcap00
приращению числа и увеличивает его до 100 МБ. Это означает, что если у вас много запросов в течение 30 минут, вы получите очень высокие цифры httpdebug.pcapXX. Если вы больше никогда не достигнете такого количества запросов за период, эти высокие цифры httpdebug.pcapXX никогда не будут перезаписаны.Так что я думаю, что циклические файлы на временной интервал означают, что временной интервал есть,
-G 1800
и он будет циклически выполнять каждый-G 1800
и увеличивать каждый-C 100
.Я не уверен,
-W 48
влияет ли это, но, возможно, если вы доберетесь доhttpdebug.pcap47
(count начинается с 0`, он прекратит захват пакетов.Несколько недавно появилась проблема с GitHub по поводу запутанной формулировки. Они не изменили реализацию, но попытались сделать документацию немного понятнее.
В предлагаемых изменениях были объединены в на 28 января 2019 года .
На сегодняшний день, 17 марта 2019 года, вот текущая документация:
-C
:-G
:-W
:Я все еще думаю, что это немного сбивает с толку, но я думаю, что отличие от моего заключения выше, в том, что он говорит, что
-W
при использовании с-C -G
не влияет ни на что, кроме имени файла.В общем,
-W
используется для ограничения количества файлов. Так что не используйте его, если хотите захватить на неопределенный срок.источник