Это потому, что вы написали -W 3
вместо -W 48
. Однако в вашей команде есть и другие ошибки.
Опция -G
означает:
-G rotate_seconds
Если указано, вращает файл дампа, указанный с параметром -w
каждые rotate_seconds секунд. Файлы сохранения будут иметь имя, указанное в -w
которое должно включать формат времени, определенный strftime(3).
Если формат времени не указан, каждый новый файл будет перезаписывать предыдущий.
Если используется в сочетании с параметром -C
, имена файлов будут иметь вид ' file <count>'.
Так как вы написали -G 3
, вы будете вращать это каждые 3 секунды, пока вы заявили
... который собирает данные за 30 минут
Кроме того, схема именования неверна: из вышесказанного,
Если используется в сочетании с параметром -C
, имена файлов будут иметь вид ' file <count>'.
Таким образом, нет смысла указывать формат времени для имени.
Кроме того, опция -C
не имеет аргументов, в то время как, согласно man-странице, она должна:
tcpdump [ -AdDefIKlLnNOpqRStuUvxX ] [ -B buffer_size ] [ -c count ]
[ -C file_size ] [ -G rotate_seconds ] [ -F файл ] [ -I интерфейс ] [ -m модуль ] [ -M секрет ] [ -r файл ] [ -s оснастка ] [ -T тип ] [ -w файл ] [ -W filecount ] [ -E spi @ ipaddr algo: секрет, ... ]
[ -y datalinktype ] [ -z postrotate-команда ] [ -Z пользователь ] [ выражение ]
Страница руководства гласит:
-C
Перед записью необработанного пакета в файл сохранения убедитесь, что размер файла больше, чем file_size, и, если это так, закройте текущий файл сохранения и откройте новый. Файлы сохранения после первого файла сохранения будут иметь имя, указанное с флагом -w
, с номером после него, начиная с 1 и продолжая вверх.
Единицами file_size являются миллионы байтов (1 000 000 байтов, а не 1 048 576 байтов).
Таким образом, вы должны указать -C 100
, чтобы получить 100 МБ файлов.
В конце ваша команда должна быть:
tcpdump -i en0 -w /var/tmp/trace -W 48 -G 1800 -C 100 -K -n
Это будет циклически вращать файлы (с именами trace1, trace2, ...) с периодом 48, либо каждые 1800 секунд (= 30 минут), либо каждые 100 МБ, в зависимости от того, что произойдет раньше.