Se você quiser apenas que o tcpdump seja executado por n segundos e, em seguida, saia, você pode usar 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.
Como posso capturar os últimos N segundos de pacotes usando o tcpdump?
Se você quiser apenas que o tcpdump seja executado por n segundos e, em seguida, saia, você pode usar 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.
Acho que a melhor maneira de fazer isso é com o sinalizador -G do tcpdump, que, quando usado com -w, salvará seu despejo em um novo arquivo a cada N segundos. Por exemplo:
tcpdump -w outfile-% s -G 10
Isso criará um novo arquivo com o nome de 'outfile-XXXX' (onde XXXX representa o número de segundos desde a época) a cada 10 segundos.
Veja as man pages de tcpdump (8) e strftime (3) para detalhes adicionais.
tcpdump options -w new.tcpdump
ps -ef |grep tcpdump
anote o PID, digamos que seja 11193
at 11:00
kill 11193
agora é só esperar até as 11:00 e sua captura será eliminada, mas salva
Eu estava tentando resolver o mesmo problema, Eu escrevi um script portátil para executar o tcpdump por n segundos.
#tcpdump_for_n_sec.sh
n=$1
shift #remove first arg from $@
tcpdump $@ & x=$!
sleep $n
kill $x
Uso ./tcpdump_for_n_sec.sh seg args para tcpdump
./tcpdump_for_n_sec.sh 5 i- any not port 22 -s0 -wfile.pcap
sudo tcpdump -i -w & isso vai rodar o tcpdump no modo de dormir
Você pode usar o tethereal em vez do tcpdump. Você pode usar esta opção de linha de comando:
-a duration:X
Tags tcpdump