Wenn Sie möchten, dass tcpdump n Sekunden lang läuft und dann beendet wird, können Sie Timeout verwenden.
Zum Beispiel:
timeout 2 tcpdump -eni mon0
Ansonsten glaube ich nicht, dass tcpdump dazu eine Option hat.
Wie kann ich mit tcpdump die letzten N Sekunden von Paketen erfassen?
Wenn Sie möchten, dass tcpdump n Sekunden lang läuft und dann beendet wird, können Sie Timeout verwenden.
Zum Beispiel:
timeout 2 tcpdump -eni mon0
Ansonsten glaube ich nicht, dass tcpdump dazu eine Option hat.
Ich denke, der beste Weg, dies zu erreichen, ist mit dem Flag tcpdump -G, das bei Verwendung von -w Ihren Speicherabzug alle N Sekunden in einer neuen Datei speichert. Zum Beispiel:
tcpdump -w outfile-% s -G 10
Dadurch wird alle 10 Sekunden eine neue Datei mit dem Namen 'outfile-XXXX' (wobei XXXX die Anzahl der Sekunden seit der Epoche darstellt) erstellt.
Weitere Informationen finden Sie in den Manpages zu tcpdump (8) und strftime (3).
tcpdump options -w new.tcpdump
ps -ef |grep tcpdump
Beachten Sie die PID, sagen Sie, es ist 11193
at 11:00 kill 11193
Warten Sie einfach, bis 11:00 Uhr kommt und Ihre Gefangennahme wird getötet, aber gespeichert
Ich habe versucht, das gleiche Problem zu lösen, also habe ich ein portables Skript geschrieben, um tcpdump für n Sekunde auszuführen.
#tcpdump_for_n_sec.sh n=$1 shift #remove first arg from $@ tcpdump $@ & x=$! sleep $n kill $x
Verwendung von ./tcpdump_for_n_sec.sh-Informationen für tcpdump
./tcpdump_for_n_sec.sh 5 i- any not port 22 -s0 -wfile.pcap
sudo tcpdump -i -w & führt aus, dass tcpdump im schlafmodus ist
Sie können Tethereal anstelle von tcpdump verwenden. Sie können diese Befehlszeilenoption verwenden:
-a duration:X