Tcpdump kullanarak paketlerin son N saniyesini nasıl yakalayabilirim?
Tcpdump kullanarak paketlerin son N saniyesini nasıl yakalayabilirim?
Yanıtlar:
Tcpdump öğesinin n saniye boyunca çalışmasını ve ardından çıkılmasını istiyorsanız, zaman aşımı kullanabilirsiniz.
Örneğin:
timeout 2 tcpdump -eni mon0
Aksi takdirde tcpdump'ın bunu yapmak için bir seçeneği olduğuna inanmıyorum.
Bunu başarmanın en iyi yolunun, -w ile birlikte kullanıldığında, dökümünüzü her N saniyede yeni bir dosyaya kaydedecek olan tcpdump'ın -G bayrağı ile olduğunu düşünüyorum. Örneğin:
tcpdump -w outfile-% s -G 10
Bu, her 10 saniyede bir 'outfile-XXXX' adında yeni bir dosya oluşturur (burada XXXX, çağdan bu yana geçen saniye sayısını gösterir).
Ek ayrıntılar için tcpdump (8) ve strftime (3) kılavuz sayfalarına bakın.
Tcpdump yerine tethereal kullanabilirsiniz. Bu komut satırı seçeneğini kullanabilirsiniz:
-a duration:X
tshark -a duration:600 -i eth0 -w $(hostname).10mins.pcap
sorulup yanıtlandığından beri, Ethereal Wireshark oldu) eth0 arabiriminden $ (hostname) dosyasına 10 dakika trafik çekecek .10mins.pcap
Aynı sorunu çözmeye çalışıyordum, n saniye boyunca tcpdump çalıştırmak için taşınabilir bir komut dosyası yazdım.
#tcpdump_for_n_sec.sh
n=$1
shift #remove first arg from $@
tcpdump $@ & x=$!
sleep $n
kill $x
Tcpdump için ./tcpdump_for_n_sec.sh sn argümanlar
./tcpdump_for_n_sec.sh 5 i- any not port 22 -s0 -wfile.pcap