Tcpdump
tcpdump 基於時間的圓形旋轉
儘管閱讀了手冊頁並蒐索了 StackExchange 和更廣泛的網際網路,但我未能找到一種方法來製作基於時間的、旋轉的、有限計數的 tcpdump。
例如,我希望每小時有一個文件,不超過 24 小時。但我不希望 tcpdump 在 24 個文件後停止,我希望它刪除最舊的文件並創建一個新文件。我希望它永遠執行,但永遠不要超過 24 個文件。
手冊頁似乎表明,如果你
-C -W -G
一起使用,你可以實現這一點,但我的測試並沒有證明這可以工作。使用5
-G -W
個strftime
文件後退出# tcpdump -w foo.%F_%H%M%S -G 5 -W 5 -Z root port 22 tcpdump: listening on enp0s3, link-type EN10MB (Ethernet), capture size 65535 bytes Maximum file limit reached: 5
將這三個一起使用似乎只是限制了每個時間範圍內生成的文件數量。例如,下面將在每個 5s 視窗中擷取多達 5 x 1MB 的文件。如果 5s 內超過 5MB,則只保留最後的 5MB。但是,總文件的數量將永遠增長。
# tcpdump -w foo.%F_%H%M%S -G 5 -C 1 -W 5 -Z root port 22
這將擷取 5 x 1MB 文件並在一個環中覆蓋。
# tcpdump -w foo -C 1 -W 5 -Z root port 22
但我想按時間旋轉,而不是按大小旋轉。
以每分鐘無限生成六個擷取文件為例:
# tcpdump -i eth0 -G 10 -w dump-%S.pcap
.請注意,
%S
模板文件名中只需要指定第二個時間變數,旋轉時間範圍為 10 秒,由-G
. 當擷取時間從分鐘到分鐘變化時,tcpdump
覆蓋之前的秒標記文件。現在,可以通過以下方式實現每小時輪換和每日循環擷取:
# tcpdump -i eth0 -G 3600 -w dump-%H.pcap
.同樣的原理也適用於此。
tcpdump
每 3600 秒創建一個新文件,並以目前小時命名。更改日期後,前一小時的文件將依次替換。