Saya mencari untuk dapat menangkap output tcpdump yang berputar yang menangkap data senilai 30 menit, menjadi 48 file, secara siklis.
Halaman manual menyiratkan ini harus dimungkinkan, tetapi pengujian saya tampaknya tidak menghasilkan hasil yang saya cari:
-W
Digunakan bersama dengan
-C
opsi, ini akan membatasi jumlah file yang dibuat ke nomor yang ditentukan, dan mulai menimpa file dari awal, sehingga menciptakan buffer 'rotating'. Selain itu, ini akan memberi nama file dengan 0s terkemuka cukup untuk mendukung jumlah file maksimum, memungkinkan mereka untuk mengurutkan dengan benar.Digunakan bersama dengan
-G
opsi, ini akan membatasi jumlah file dump yang diputar yang dibuat, keluar dengan status 0 saat mencapai batas. Jika digunakan dengan-C
juga, perilaku akan menghasilkan file siklus per kutu waktu.
Saya menjalankan ini pada klien OS X 10.9.5 / 10.10.3. Inilah perintah tesnya; hanya keluar setelah file ke-3:
tcpdump -i en0 -w /var/tmp/trace-%Y-%M-%d_%H.%M.%S.pcap -W 3 -G 3 -C -K -n
Jawaban:
Itu karena Anda tulis
-W 3
bukan-W 48
. Namun, ada kesalahan lain dalam perintah Anda.Opsinya
-G
berarti:Karena Anda menulis
-G 3
, Anda akan memutarnya setiap 3 detik, saat Anda menyatakannyaJuga, skema penamaan salah: dari atas,
Jadi tidak ada gunanya menentukan format waktu untuk nama.
Selanjutnya,
-C
opsi tidak memiliki argumen, sementara, menurut halaman manual , itu harus:The man page negara:
Jadi, Anda harus menentukan
-C 100
untuk menghasilkan file 100 MB.Pada akhirnya, perintah Anda harus:
Ini akan memutar file (dari nama trace1, trace2, ...) secara siklis, dengan periode 48, baik setiap 1800 detik (= 30 menit) atau setiap 100 MB, mana yang lebih dulu.
sumber
If no time format is specified, each new file will overwrite the previous.
(Saya telah memperbarui jawabannya.)Memperluas jawaban flabdablet (berubah
-G 1800
menjadi-G 300
- rotasi setiap lima menit - hanya untuk tujuan pengujian),akan memberikan
%m=month
,%d=day of month
,%H=hour of day
,%M=minute of day
,%S=second of day
,%s=millisecond of day
, sehinggaSangat berguna untuk mengatur jejak untuk masalah intermiten sial itu. Juga, jika Anda tidak root, Anda mungkin ingin
sudo
dan tentu saja membuatnya tidak menjadi:sumber
Menurut saya semua yang Anda butuhkan adalah
Penentu format strftime yang diharapkan -G dalam nama file -w tidak harus mewakili tanggal dan waktu yang lengkap. Dengan hanya% H dan% M di sana, dan waktu rotasi tepat setengah jam, setiap pemanggilan tcpdump yang diberikan hanya akan menghasilkan dua nilai% M yang berbeda setengah jam terpisah, dan file jejak kemarin akan ditimpa ketika jam yang sama dan angka menit bergulung lagi.
sumber
Setelah beberapa percobaan, saya tidak bisa mendapatkan jawaban @MariusMatutiae berfungsi seperti yang diharapkan. Jika waktu menjadi faktor pembatas dan tanpa penambahan format waktu ke nama file, maka file pcap saat ini hanya ditimpa.
Misalnya, coba:
Yang akhirnya Anda
trace.pcap0
tulis terus berulang.Seperti yang disarankan dalam komentar, jika Anda menambahkan format waktu ke nama file, maka Anda hanya berakhir dengan dan setiap daftar file yang berkembang.
Karena itu, saya harus tetap menggunakan file terbatas ukuran sederhana:
sumber
Ya, sepertinya itu tidak berfungsi seperti jawaban MariusMatutiae .
Sepertinya saya mungkin menangkap sebanyak mungkin
-C 100
file MB dalam 30 menit karenahttpdebug.pcap03
memiliki stempel waktu paling awal dan jauh lebih kecil dari 100MB, jadi sepertinya dipotong pada tanda 30 menit. Setelah mencapai 30 menit, tampaknya akan melompat kembali kehttpdebug.pcap00
dan menambah angka saat mencapai 100MB. Ini berarti bahwa jika Anda memiliki banyak permintaan dalam periode 30 menit, Anda mendapatkan angka httpdebug.pcapXX yang sangat tinggi. Jika Anda tidak pernah mencapai sebanyak itu permintaan dalam suatu periode lagi, angka-angka httpdebug.pcapXX yang tinggi itu tidak akan pernah ditimpa.Jadi saya berpikir file siklikal per kutu waktu berarti kutu waktu itu
-G 1800
dan akan siklus setiap-G 1800
dan setiap kenaikan-C 100
.Saya tidak yakin apakah
-W 48
memengaruhinya, tetapi mungkin jika Anda mendapatkanhttpdebug.pcap47
(hitungan dimulai dari 0`, itu akan berhenti menangkap paket.Agak baru-baru ini, ada masalah GitHub dibuka tentang kata-kata yang membingungkan. Mereka tidak mengubah implementasi, tetapi mereka mencoba untuk membuat dokumentasi sedikit lebih jelas.
The perubahan yang diusulkan digabung dalam pada Jan 28, 2019 .
Sampai hari ini, 17 Maret 2019, berikut adalah dokumentasi saat ini:
-C
:-G
:-W
:Saya masih berpikir itu agak membingungkan, tapi saya kira perbedaan dari kesimpulan saya di atas, adalah bahwa ia mengatakan
-W
ketika digunakan dengan-C -G
tidak mempengaruhi apa pun kecuali nama file.Secara umum,
-W
digunakan untuk membatasi jumlah file. Jadi jangan gunakan itu jika Anda ingin menangkap tanpa batas.sumber