Tak, to nie działa, jak mówi odpowiedź Marius Matutiae .
tcpdump ...{other options}... -w httpdebug.pcap -W 48 -G 1800 -C 100
$ ls -l
-rw-r--r--. 1 tcpdump tcpdump 100007441 Mar 17 17:57 httpdebug.pcap00
-rw-r--r--. 1 tcpdump tcpdump 46895104 Mar 17 18:02 httpdebug.pcap01
-rw-r--r--. 1 tcpdump tcpdump 93091143 Mar 17 17:47 httpdebug.pcap02
-rw-r--r--. 1 tcpdump tcpdump 5372072 Mar 17 16:17 httpdebug.pcap03
Wydaje mi się, że może przechwytywać jak najwięcej -C 100
plików MB, jak to możliwe w ciągu 30 minut, ponieważ httpdebug.pcap03
ma najwcześniejszy znacznik czasu i jest znacznie mniejszy niż 100 MB, więc wygląda na to, że został wycięty w 30 minucie. Gdy osiągnie 30 minut, wydaje się, że przeskakuje z powrotem httpdebug.pcap00
i zwiększa liczbę, gdy osiąga 100 MB. Oznacza to, że jeśli masz dużo żądań w ciągu 30 minut, osiągasz bardzo wysokie liczby httpdebug.pcapXX. Jeśli nigdy nie osiągniesz tak wielu żądań w danym okresie, te wysokie liczby httpdebug.pcapXX nigdy nie zostaną zastąpione.
Myślę więc, że cykliczne pliki na przedział czasu oznaczają, że przedział czasu jest -G 1800
i będzie się on cyklicznie zmieniał-G 1800
co każde -C 100
.
Nie jestem pewien, czy -W 48
to wpłynie, ale być może jeśli to zrobisz httpdebug.pcap47
(liczenie zaczyna się od 0, przestanie przechwytywać pakiety.
Nieco niedawno pojawił się problem GitHub dotyczący mylących sformułowań. Nie zmienili implementacji, ale starali się, aby dokumentacja była nieco jaśniejsza.
Te proponowane zmiany zostały połączone w dniu 28 stycznia 2019 r .
Na dzień dzisiejszy, 17 marca 2019 r., Oto aktualna dokumentacja:
-C
:
.BI \-C " file_size"
Before writing a raw packet to a savefile, check whether the file is
currently larger than \fIfile_size\fP and, if so, close the current
savefile and open a new one. Savefiles after the first savefile will
have the name specified with the
.B \-w
flag, with a number after it, starting at 1 and continuing upward.
The units of \fIfile_size\fP are millions of bytes (1,000,000 bytes,
not 1,048,576 bytes).
-G
:
.BI \-G " rotate_seconds"
If specified, rotates the dump file specified with the
.B \-w
option every \fIrotate_seconds\fP seconds.
Savefiles will have the name specified by
.B \-w
which should include a time format as defined by
.BR strftime (3).
If no time format is specified, each new file will overwrite the previous.
Whenever a generated filename is not unique, tcpdump will overwrite the
preexisting data; providing a time specification that is coarser than the
capture period is therefore not advised.
.IP
If used in conjunction with the
.B \-C
option, filenames will take the form of `\fIfile\fP<count>'.
-W
:
.B \-W
Used in conjunction with the
.B \-C
option, this will limit the number
of files created to the specified number, and begin overwriting files
from the beginning, thus creating a 'rotating' buffer.
In addition, it will name
the files with enough leading 0s to support the maximum number of
files, allowing them to sort correctly.
.IP
Used in conjunction with the
.B \-G
option, this will limit the number of rotated dump files that get
created, exiting with status 0 when reaching the limit.
.IP
If used in conjunction with both
.B \-C
and
.B \-G,
the
.B \-W
option will currently be ignored, and will only affect the file name.
Nadal uważam, że to trochę mylące, ale sądzę, że różnica w stosunku do mojego powyższego wniosku polega na tym, że napisane w połączeniu -W
z -C -G
nie wpływa na nic poza nazwą pliku.
Zasadniczo -W
służy do ograniczania liczby plików. Więc nie używaj go, jeśli chcesz uchwycić w nieskończoność.