Eso es porque escribiste -W 3
en lugar de -W 48
. Sin embargo, hay otros errores en su comando.
La opción -G
significa:
-G rotate_seconds
Si se especifica, gira el archivo de volcado especificado con -w
opción cada rotate_seconds segundos. Los archivos guardados tendrán el nombre especificado por -w
que debe incluir un formato de tiempo como lo define strftime(3). Si no se especifica un formato de hora, cada nuevo archivo sobrescribirá al anterior.
Si se usa junto con el -C
opción, los nombres de archivo tomarán la forma de 'archivo
Desde que escribiste -G 3
, rotarás esto cada 3 segundos, mientras indicas
...que captura 30 minutos de datos
Además, el esquema de nombres es incorrecto:de lo anterior,
Si se usa junto con el -C
opción, los nombres de archivo tomarán la forma de 'archivo
Por lo tanto, no tiene sentido especificar el formato de hora para el nombre.
Además, el -C
La opción no tiene argumento, mientras que, según la página del manual, debería:
tcpdump [ -AdDefIKlLnNOpqRStuUvxX ] [ -B tamaño_búfer ] [
[ -C tamaño_archivo ] [
La página del manual dice:
-C
Antes de escribir un paquete sin procesar en un archivo guardado, verifique si el archivo es actualmente más grande que file_size y, si es así, cierre el archivo guardado actual y abra uno nuevo. Los archivos guardados después del primer archivo guardado tendrán el nombre especificado con -w
bandera, con un número después, comenzando en 1 y continuando hacia arriba. Las unidades de file_size son millones de bytes (1,000,000 bytes, no 1,048,576 bytes).
Por lo tanto, debe especificar -C 100
para producir archivos de 100 MB.
Al final, su comando debería ser:
tcpdump -i en0 -w /var/tmp/trace -W 48 -G 1800 -C 100 -K -n
Esto rotará los archivos (de nombres trace1, trace2, ...) cíclicamente, con un período de 48, ya sea cada 1800 segundos (=30 minutos) o cada 100 MB, lo que ocurra primero.
Ampliando la respuesta de flabdablet (cambiando -G 1800
a -G 300
–rotación cada cinco minutos –solo con fines de prueba),
tcpdump -i en0 -w /var/tmp/trace-%m-%d-%H-%M-%S-%s -W 3 -G 300
te dará %m=month
, %d=day of month
, %H=hour of day
, %M=minute of day
, %S=second of day
, %s=millisecond of day
,resultando en
/var/temp/trace-03-02-08-30-56-1520002568
/var/temp/trace-03-02-08-35-56-1520002568
/var/temp/trace-03-02-08-40-56-1520002568
Muy útil para organizar las trazas de esos molestos problemas intermitentes. Además, si no es root, es posible que desee sudo
y por supuesto que sea un nohup:
sudo bash -c "nohup tcpdump -i en0 -w /var/tmp/trace-%m-%d-%H-%M-%S-%s -W 3 -G 300 &"
Me parece que todo lo que necesitas es
tcpdump -i en0 -G 1800 -w /var/tmp/trace-%H-%M.pcap
El especificador de formato strftime que -G espera en el nombre de archivo -w no tiene que representar una fecha y hora completas. Con solo %H y %M allí, y un tiempo de rotación de exactamente media hora, cualquier invocación dada de tcpdump solo generará dos valores diferentes de %M con media hora de diferencia, y los archivos de seguimiento de ayer se sobrescribirán cuando la misma hora y los números de los minutos vuelven a rodar.