Пишите в другой файл tcpdump каждую минуту

Я хочу использовать tcpdump для создания файлов журналов для сети. Я могу написать в файл с именами файлов, содержащими минуты.

Примечание: я не хочу создавать файлы по размеру файла. Я хочу создавать файлы на каждую минуту.

Я пытался много командовать, но я не мог.

# log_{DAY}_{MOUNTH}_{YEAR}__{HOUR}_{MINUTE}.pcap

log_08-07_2018__12_34.pcap
log_08-07_2018__12_35.pcap
log_08-07_2018__12_36.pcap
log_08-07_2018__12_37.pcap

1 ответ

Решение

От tcpdump справочная страница:

-G rotate_seconds If specified, rotates the dump file specified with the -w option every rotate_seconds seconds. Savefiles will have the name specified by -w which should include a time format as defined by strftime(3). If no time format is specified, each new file will overwrite the previous. If used in conjunction with the -C option, filenames will take the form of 'file count'.

Глядя на strftime На странице man вы найдете все задокументированные спецификаторы преобразования, необходимые для создания файлов в указанном вами формате.

Используя информацию из различных man-страниц, следующая команда должна каждую минуту создавать pcap-файлы, имена которых соответствуют указанному вами формату:

tcpdump -i eth0 -G 60 -w 'log_%d-%m_%Y__%H_%M.pcap'

Могу ли я предложить другое соглашение об именах? Формат, который вы выбрали, не очень хорошо сортируется, и часы могут дрейфовать со временем, особенно для длительных файлов захвата; поэтому я бы рекомендовал использовать формат ISO 8601. Например:

tcpdump -i eth0 -G 60 -w 'log_%Y-%m-%dT%H_%M-04:00.pcap'

... или даже проще:

tcpdump -i eth0 -G 60 -w 'log_%FT%T-04:00.pcap'

ПРИМЕЧАНИЕ -04:00 - это текущее смещение от UTC для моего часового пояса. Если вы не делитесь файлами pcap с коллегами в разных часовых поясах, вы можете пропустить смещение, но это может быть полезно, так что вы все равно можете его сохранить. Вы никогда не знаете, когда в будущем вы захотите поделиться pcaps с коллегами по часовым поясам, и если они откроют ваш файл pcap, они получат информацию, необходимую для быстрого сдвига временных меток пакетов с помощью Editsh > Time Shift в Wireshark ... так что временные метки пакетов относятся к часовому поясу, в котором был взят файл захвата, а не к собственному часовому поясу. Таким образом, все ссылаются на одно и то же время независимо от своего часового пояса, и можно избежать путаницы.

Другие вопросы по тегам