"Beri aku" tidak akan membawamu jauh ke sini. Mungkin Anda harus menunjukkan kepada kami apa yang telah Anda coba sejauh ini dan di mana tepatnya Anda memiliki masalah, Anda tidak dapat menyelesaikannya sendiri.
matthias krull
Perintah bash yang Anda inginkan adalah: "man tcpdump"
William Pursell
Jawaban:
15
Jika Anda hanya ingin tcpdump berjalan selama n detik dan kemudian berhenti, Anda bisa menggunakan batas waktu.
Sebagai contoh:
timeout 2 tcpdump -eni mon0
Kalau tidak, saya tidak percaya tcpdump memiliki opsi untuk melakukan ini.
Sayangnya perintah timeout tidak ada di CentOS 5.x. Itu ditambahkan dalam rilis coreutils yang lebih baru. Motivasi lain bagi saya untuk meningkatkan OS.
Mister_Tom
Saya kira jika Anda tidak memiliki batas waktu, Anda bisa membuat sesuatu seperti batas waktu dengan sebuah skrip:
siesta
Bekerja bagus untukku. Saya menggunakan ini untuk memantau semua lalu lintas untuk program yang tidak berfungsi. Saya mulai tcpdump dengan batas waktu N detik. Kemudian saya memulai program (yang membutuhkan waktu hingga N detik).
Trevor Boyd Smith
Pertanyaannya adalah meminta untuk menangkap N detik terakhir . Jawaban Anda memberi tahu cara menangkap N detik pertama .
Flimzy
3
Saya pikir cara terbaik untuk mencapai ini adalah dengan -c flag tcpdump, yang, ketika digunakan dengan -w, akan menyimpan dump Anda ke file baru setiap N detik. Contohnya:
tcpdump -w outfile-% s -G 10
Ini akan membuat file baru dengan nama 'outfile-XXXX' (di mana XXXX mewakili jumlah detik sejak zaman) setiap 10 detik.
Lihat halaman manual untuk tcpdump (8) dan strftime (3) untuk detail tambahan.
tcpdump 3.9.4 seperti yang dikirimkan dengan CentOS 5.10 tidak memiliki opsi -G. Saya benar-benar perlu meningkatkan OS saya.
Mister_Tom
-G tidak menghentikan perintah tcpdump. Itu masih berjalan selamanya. Timeout 2 tcpdump akan menghentikan perintah setelah 2 detik.
ciceron
@ciceron: Pertanyaannya bukan tentang menghentikan tcpdump. Itu tentang menangkap N detik terakhir . Saran Anda akan menangkap N detik pertama . Jelas bukan apa yang diminta OP.
Flimzy
1
Anda dapat menggunakan tethereal alih-alih tcpdump. Anda dapat menggunakan opsi baris perintah ini:
Meskipun ini mungkin menjawab pertanyaan, itu akan menjadi jawaban yang lebih baik jika Anda bisa memberikan penjelasan mengapa itu bisa terjadi.
DavidPostill
tcpdump itu sendiri tidak memungkinkan untuk jejak paket terbatas waktu tetapi tshark tidak. (nb sejak pertanyaan ini ditanyakan dan dijawab, Ethereal menjadi Wireshark) tshark -a duration:600 -i eth0 -w $(hostname).10mins.pcapakan menangkap lalu lintas senilai sepuluh menit dari antarmuka eth0 ke dalam file $ (hostname) .10mins.pcap
Andrew Beals
0
tcpdump options -w new.tcpdump
ps -ef |grep tcpdump
catat PID, katakan itu 11193
at 11:00
kill 11193
sekarang tunggu sampai 11:00 datang dan tangkapan Anda akan terbunuh tetapi disimpan
sudo tcpdump -i -w & ini akan menjalankan tcpdump adalah mode tidur
w: simpan keluaran dalam file .pcap & &: tcpdump akan berjalan dalam mode tidur. Catatan: pastikan Anda memiliki cukup ruang yang tersedia jika Anda mau. untuk menjalankannya sebentar. Itu tidak akan mengganggu jika logoff sampai Anda mematikan proses.
Jawaban:
Jika Anda hanya ingin tcpdump berjalan selama n detik dan kemudian berhenti, Anda bisa menggunakan batas waktu.
Sebagai contoh:
Kalau tidak, saya tidak percaya tcpdump memiliki opsi untuk melakukan ini.
sumber
Saya pikir cara terbaik untuk mencapai ini adalah dengan -c flag tcpdump, yang, ketika digunakan dengan -w, akan menyimpan dump Anda ke file baru setiap N detik. Contohnya:
tcpdump -w outfile-% s -G 10
Ini akan membuat file baru dengan nama 'outfile-XXXX' (di mana XXXX mewakili jumlah detik sejak zaman) setiap 10 detik.
Lihat halaman manual untuk tcpdump (8) dan strftime (3) untuk detail tambahan.
sumber
Anda dapat menggunakan tethereal alih-alih tcpdump. Anda dapat menggunakan opsi baris perintah ini:
sumber
tshark -a duration:600 -i eth0 -w $(hostname).10mins.pcap
akan menangkap lalu lintas senilai sepuluh menit dari antarmuka eth0 ke dalam file $ (hostname) .10mins.pcaptcpdump options -w new.tcpdump
ps -ef |grep tcpdump
catat PID, katakan itu 11193
at 11:00 kill 11193
sekarang tunggu sampai 11:00 datang dan tangkapan Anda akan terbunuh tetapi disimpan
sumber
Saya mencoba untuk memecahkan masalah yang sama jadi, saya menulis skrip portabel untuk menjalankan tcpdump selama n detik.
Penggunaan ./tcpdump_for_n_sec.sh detik args untuk tcpdump
sumber
sudo tcpdump -i -w & ini akan menjalankan tcpdump adalah mode tidur
sumber