Ich möchte in der Lage sein, eine rotierende tcpdump-Ausgabe, die Daten im Wert von 30 Minuten erfasst, zyklisch in 48 Dateien zu erfassen.
Die Manpage impliziert, dass dies möglich sein sollte, aber meine Tests scheinen nicht das gewünschte Ergebnis zu liefern:
-W
In Verbindung mit der
-C
Option wird dadurch die Anzahl der erstellten Dateien auf die angegebene Anzahl begrenzt, und es wird von Anfang an mit dem Überschreiben von Dateien begonnen, wodurch ein rotierender Puffer erstellt wird. Außerdem werden die Dateien mit genügend führenden Nullen benannt, um die maximale Anzahl von Dateien zu unterstützen, sodass sie korrekt sortiert werden können.In Verbindung mit der
-G
Option wird dadurch die Anzahl der erstellten gedrehten Dump-Dateien begrenzt, die beim Erreichen des Grenzwerts mit dem Status 0 beendet werden. Bei Verwendung mit-C
wird das Verhalten zu zyklischen Dateien pro Zeitscheibe führen.
Ich führe dies auf OS X 10.9.5 / 10.10.3-Clients aus. Hier ist der Testbefehl; es wird nur nach der 3. Datei beendet:
tcpdump -i en0 -w /var/tmp/trace-%Y-%M-%d_%H.%M.%S.pcap -W 3 -G 3 -C -K -n
Antworten:
Das liegt daran, dass du
-W 3
statt geschrieben hast-W 48
. Es gibt jedoch andere Fehler in Ihrem Befehl.Die Option
-G
bedeutet:Seit Sie geschrieben haben
-G 3
, drehen Sie dies alle 3 Sekunden, während Sie angegeben habenAuch das Namensschema ist falsch: von oben,
Daher macht es keinen Sinn, das Zeitformat für den Namen anzugeben.
Darüber hinaus hat die
-C
Option kein Argument, während sie laut Manpage Folgendes sollte:In der Manpage heißt es:
Sie sollten also angeben
-C 100
, um 100 MB-Dateien zu erstellen.Am Ende sollte Ihr Befehl sein:
Dadurch werden Dateien (mit den Namen trace1, trace2, ...) zyklisch mit dem Zeitraum 48 gedreht, entweder alle 1800 Sekunden (= 30 Minuten) oder alle 100 MB, je nachdem, was zuerst eintritt.
quelle
If no time format is specified, each new file will overwrite the previous.
(ich habe die Antwort aktualisiert.)Erweiterung der Antwort von flabdablet (Wechsel
-G 1800
zu-G 300
- Rotation alle fünf Minuten - nur zu Testzwecken),geben Sie
%m=month
,%d=day of month
,%H=hour of day
,%M=minute of day
,%S=second of day
,%s=millisecond of day
, was zuSehr nützlich, um Spuren für diese lästigen intermittierenden Probleme zu organisieren. Wenn Sie nicht root sind, möchten Sie es vielleicht
sudo
und machen es natürlich zu einem Nohup:quelle
Mir scheint, alles was Sie brauchen ist
Der strftime-Formatbezeichner, den -G im Dateinamen -w erwartet, muss kein vollständiges Datum und keine vollständige Uhrzeit darstellen. Mit nur% H und% M und einer Rotationszeit von genau einer halben Stunde generiert jeder Aufruf von tcpdump immer nur zwei verschiedene% M-Werte im Abstand von einer halben Stunde, und die Trace-Dateien von gestern werden zur selben Stunde überschrieben und Minutenzahlen rollen wieder herum.
quelle
Nach einigen Experimenten konnte ich die Antwort von @MariusMatutiae nicht wie erwartet zum Laufen bringen. Wenn die Zeit zum begrenzenden Faktor wurde und das Zeitformat nicht zum Dateinamen hinzugefügt wurde, wird die aktuelle pcap-Datei einfach überschrieben.
Versuchen Sie zum Beispiel:
Alles, was Sie am Ende haben, wird
trace.pcap0
immer und immer wieder geschrieben.Wenn Sie, wie im Kommentar vorgeschlagen, die Zeitformatierung zum Dateinamen hinzufügen, erhalten Sie einfach jede wachsende Liste von Dateien.
Daher musste ich mich an einfache Dateien mit begrenzter Größe halten:
quelle
Ja, es scheint nicht zu funktionieren, wie die Antwort von Marius Matutiae sagt.
Es sieht für mich so aus, als würde
-C 100
es in einem Zeitraum von 30 Minuten so viele MB-Dateien wie möglich erfassen, dahttpdebug.pcap03
es den frühesten Zeitstempel hat und viel kleiner als 100 MB ist. Es scheint also, als wäre es bei einer 30-Minuten-Marke geschnitten worden. Sobald es 30 Minuten erreicht hat, scheint es zurück zu springenhttpdebug.pcap00
und die Zahl zu erhöhen, wenn es 100 MB erreicht. Dies bedeutet, dass Sie, wenn Sie innerhalb von 30 Minuten viele Anfragen haben, sehr hohe httpdebug.pcapXX-Zahlen erhalten. Wenn Sie in einem Zeitraum nie mehr so viele Anfragen erreichen, werden diese hohen httpdebug.pcapXX-Zahlen nie mehr überschrieben.Ich denke also, dass zyklische Dateien pro Zeitscheibe bedeuten, dass die Zeitscheibe ist
-G 1800
und sie alle zyklisch-G 1800
und inkrementiert-C 100
.Ich bin mir nicht sicher, ob dies
-W 48
Auswirkungen hat, aber wenn Sie dazu kommenhttpdebug.pcap47
(die Zählung beginnt bei 0 ", werden keine Pakete mehr erfasst.Vor kurzem wurde ein GitHub-Problem mit dem verwirrenden Wortlaut eröffnet. Sie haben die Implementierung nicht geändert, aber sie haben versucht, die Dokumentation ein wenig klarer zu gestalten.
Die vorgeschlagenen Änderungen wurden am 28. Januar 2019 zusammengeführt .
Ab heute, dem 17. März 2019, ist hier die aktuelle Dokumentation:
-C
::-G
::-W
::Ich denke immer noch, dass es ein wenig verwirrend ist, aber ich denke, der Unterschied zu meiner obigen Schlussfolgerung besteht darin, dass es besagt,
-W
dass die Verwendung mit-C -G
nichts anderes als den Dateinamen beeinflusst.Wird im Allgemeinen
-W
zum Begrenzen der Anzahl von Dateien verwendet. Verwenden Sie es also nicht, wenn Sie unbegrenzt erfassen möchten.quelle