"Dê-me" não o levará muito longe aqui. Talvez você deva nos mostrar o que você tentou até agora e onde exatamente você tem problemas que não consegue resolver sozinho.
Matthias Krull
O comando bash que você deseja é: "man tcpdump"
William Pursell
Respostas:
15
Se você quiser que o tcpdump seja executado por n segundos e depois saia, use o tempo limite.
Por exemplo:
timeout 2 tcpdump -eni mon0
Caso contrário, não acredito que o tcpdump tenha uma opção para fazer isso.
Infelizmente, o comando timeout não está presente no CentOS 5.x. Foi adicionado em uma versão mais recente do coreutils. Outra motivação para eu atualizar o sistema operacional.
Mister_Tom
Suponho que se você não tem tempo limite, você poderia, em vez criar algo como tempo limite com um script:
siesta
Funciona muito bem para mim. Usei isso para monitorar todo o tráfego de um programa que não estava funcionando. Comecei o tcpdump com um tempo limite de N segundos. Então iniciei o programa (que leva até N segundos).
Trevor Boyd Smith
A pergunta pede para capturar os últimos N segundos. Sua resposta diz como capturar os primeiros N segundos.
Flimzy 07/10
3
Eu acho que a melhor maneira de conseguir isso é com o sinalizador -G do tcpdump, que, quando usado com -w, salva seu dump em um novo arquivo a cada N segundos. Por exemplo:
tcpdump -w outfile-% s -G 10
Isso criará um novo arquivo com o nome 'outfile-XXXX' (onde XXXX representa o número de segundos desde a época) a cada 10 segundos.
Consulte as páginas de manual para tcpdump (8) e strftime (3) para obter detalhes adicionais.
O tcpdump 3.9.4 fornecido com o CentOS 5.10 não possui a opção -G. Eu realmente preciso atualizar meu sistema operacional.
MJ_Jul 17
-G não para o comando tcpdump. Ainda funciona para sempre. O tempo limite 2 tcpdump interromperá o comando após 2 segundos.
Ciceron
@ ciceron: A questão não era sobre parar o tcpdump. Tratava-se de capturar os últimos N segundos . Sua sugestão capturará os primeiros N segundos. Decididamente, não o que o OP pediu.
Flimzy
1
Você pode usar tethereal em vez de tcpdump. Você pode usar esta opção de linha de comando:
Embora isso possa responder à pergunta, seria uma resposta melhor se você pudesse fornecer alguma explicação para isso.
DavidPostill
O próprio tcpdump não permite um rastreamento de pacotes com tempo limitado, mas o tshark permite. (nb desde que esta pergunta foi feita e respondida, Etéreo tornou Wireshark) tshark -a duration:600 -i eth0 -w $(hostname).10mins.pcapirá capturar dez minutos a pena de tráfego de interface eth0 no arquivo $ (hostname) .10mins.pcap
Andrew Beals
0
tcpdump options -w new.tcpdump
ps -ef |grep tcpdump
tome nota do PID, diga que é 11193
at 11:00
kill 11193
Agora é só esperar até 11:00 chegar e sua captura será morta, mas salva
sudo tcpdump -i -w e isso executará o tcpdump no modo de suspensão
w: salve a saída no arquivo .pcap &: o processo tcpdump será executado no modo de suspensão nota: verifique se há espaço suficiente disponível, se desejar. para executá-lo por um tempo. Ele não interromperá o logoff até que você finalize o processo.
Respostas:
Se você quiser que o tcpdump seja executado por n segundos e depois saia, use o tempo limite.
Por exemplo:
Caso contrário, não acredito que o tcpdump tenha uma opção para fazer isso.
fonte
Eu acho que a melhor maneira de conseguir isso é com o sinalizador -G do tcpdump, que, quando usado com -w, salva seu dump em um novo arquivo a cada N segundos. Por exemplo:
tcpdump -w outfile-% s -G 10
Isso criará um novo arquivo com o nome 'outfile-XXXX' (onde XXXX representa o número de segundos desde a época) a cada 10 segundos.
Consulte as páginas de manual para tcpdump (8) e strftime (3) para obter detalhes adicionais.
fonte
Você pode usar tethereal em vez de tcpdump. Você pode usar esta opção de linha de comando:
fonte
tshark -a duration:600 -i eth0 -w $(hostname).10mins.pcap
irá capturar dez minutos a pena de tráfego de interface eth0 no arquivo $ (hostname) .10mins.pcaptcpdump options -w new.tcpdump
ps -ef |grep tcpdump
tome nota do PID, diga que é 11193
at 11:00 kill 11193
Agora é só esperar até 11:00 chegar e sua captura será morta, mas salva
fonte
Como estava tentando resolver o mesmo problema, escrevi um script portátil para executar o tcpdump por n segundo.
Uso ./tcpdump_for_n_sec.sh sec args para tcpdump
fonte
sudo tcpdump -i -w e isso executará o tcpdump no modo de suspensão
fonte