Lamentablemente, el comando de tiempo de espera no está presente en CentOS 5.x. Fue agregado en una versión más reciente de coreutils. Otra motivación para mí para actualizar el sistema operativo.
Mister_Tom
Supongo que si no tiene tiempo de espera, podría crear algo así como tiempo de espera con un script:
siesta
Funciona muy bien para mi. Usé esto para monitorear todo el tráfico de un programa que no funcionaba. Comencé tcpdump con un tiempo de espera de N segundos. Luego comencé el programa (que toma hasta N segundos).
Trevor Boyd Smith
La pregunta pide capturar los últimos N segundos. Su respuesta le dice cómo capturar los primeros N segundos.
Flimzy
3
Creo que la mejor manera de lograr esto es con el indicador -G de tcpdump, que, cuando se usa con -w, guardará su volcado en un nuevo archivo cada N segundos. Por ejemplo:
tcpdump -w outfile-% s -G 10
Esto creará un nuevo archivo con el nombre de 'outfile-XXXX' (donde XXXX representa el número de segundos desde la época) cada 10 segundos.
Consulte las páginas de manual de tcpdump (8) y strftime (3) para obtener detalles adicionales.
tcpdump 3.9.4 como se envió con CentOS 5.10 no tiene la opción -G. Realmente necesito actualizar mi sistema operativo.
Mister_Tom
-G no detiene el comando tcpdump. Todavía funciona para siempre. El tiempo de espera 2 tcpdump detendrá el comando después de 2 segundos.
ciceron
@ciceron: La pregunta no era sobre detener tcpdump. Se trataba de capturar los últimos N segundos . Su sugerencia capturará los primeros N segundos. Decididamente no es lo que solicitó el OP.
Flimzy
1
Puede usar tethereal en lugar de tcpdump. Puede usar esta opción de línea de comandos:
Si bien esto puede responder la pregunta, sería una mejor respuesta si pudiera proporcionar alguna explicación de por qué lo hace.
DavidPostill
tcpdump en sí mismo no permite un rastreo de paquetes con tiempo limitado, pero tshark sí. (Nota: desde que se hizo y respondió esta pregunta, Ethereal se convirtió en Wireshark) tshark -a duration:600 -i eth0 -w $(hostname).10mins.pcapcapturará diez minutos de tráfico de la interfaz eth0 en el archivo $ (nombre de host) .10mins.pcap
Andrew Beals
0
tcpdump options -w new.tcpdump
ps -ef |grep tcpdump
tome nota de PID, diga que es 11193
at 11:00
kill 11193
ahora solo espera hasta las 11:00 y tu captura se matará pero se guardará
sudo tcpdump -i -w & esto se ejecutará tcpdump está en modo de suspensión
w: guardar la salida en el archivo .pcap &: el proceso tcpdump se ejecutará en modo de suspensión nota: asegúrese de tener suficiente espacio disponible si lo desea. ejecutarlo por un tiempo. No se interrumpirá si cierra sesión hasta que finalice el proceso.
Respuestas:
Si solo desea que tcpdump se ejecute durante n segundos y luego salga, puede usar el tiempo de espera.
Por ejemplo:
De lo contrario, no creo que tcpdump tenga una opción para hacer esto.
fuente
Creo que la mejor manera de lograr esto es con el indicador -G de tcpdump, que, cuando se usa con -w, guardará su volcado en un nuevo archivo cada N segundos. Por ejemplo:
tcpdump -w outfile-% s -G 10
Esto creará un nuevo archivo con el nombre de 'outfile-XXXX' (donde XXXX representa el número de segundos desde la época) cada 10 segundos.
Consulte las páginas de manual de tcpdump (8) y strftime (3) para obtener detalles adicionales.
fuente
Puede usar tethereal en lugar de tcpdump. Puede usar esta opción de línea de comandos:
fuente
tshark -a duration:600 -i eth0 -w $(hostname).10mins.pcap
capturará diez minutos de tráfico de la interfaz eth0 en el archivo $ (nombre de host) .10mins.pcaptcpdump options -w new.tcpdump
ps -ef |grep tcpdump
tome nota de PID, diga que es 11193
at 11:00 kill 11193
ahora solo espera hasta las 11:00 y tu captura se matará pero se guardará
fuente
Estaba tratando de resolver el mismo problema, así que escribí un script portátil para ejecutar tcpdump durante n segundos.
Uso ./tcpdump_for_n_sec.sh sec args para tcpdump
fuente
sudo tcpdump -i -w & esto se ejecutará tcpdump está en modo de suspensión
fuente