【问题标题】:Write to another tcpdump file every minute每分钟写入另一个 tcpdump 文件
【发布时间】:2018-12-16 07:54:44
【问题描述】:

我想使用 tcpdump 为网络创建日志文件。 我可以使用包含分钟的文件名写入文件输出。

注意:我不想按文件大小创建文件。我想每分钟创建文件。

我尝试了很多命令,但我做不到。

# log_{DAY}_{MOUNTH}_{YEAR}__{HOUR}_{MINUTE}.pcap

log_08-07_2018__12_34.pcap
log_08-07_2018__12_35.pcap
log_08-07_2018__12_36.pcap
log_08-07_2018__12_37.pcap

【问题讨论】:

  • 由于 Stack Overflow 向您隐藏了关闭原因:寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:How to create a Minimal, Complete, and Verifiable example

标签: linux command command-line-interface tcpdump


【解决方案1】:

来自tcpdump man page

-G rotate_seconds If specified, rotates the dump file specified with the -w option every rotate_seconds seconds. Savefiles will have the name specified by -w which should include a time format as defined by strftime(3). If no time format is specified, each new file will overwrite the previous. If used in conjunction with the -C option, filenames will take the form of 'file count'.

查看strftime man page,您会发现创建您指定格式的文件所需的所有文档化转换说明符。

使用来自各个手册页的信息,以下命令应每分钟生成 pcap 文件,这些文件根据您指定的格式命名:

tcpdump -i eth0 -G 60 -w 'log_%d-%m_%Y__%H_%M.pcap'

我可以建议一个不同的命名约定吗?您选择的格式不会很好地排序,时钟会随着时间的推移而漂移,尤其是对于长时间运行的捕获文件;因此,我建议使用ISO 8601 格式。例如:

tcpdump -i eth0 -G 60 -w 'log_%Y-%m-%dT%H_%M-04:00.pcap'

...甚至更简单:

tcpdump -i eth0 -G 60 -w 'log_%FT%T-04:00.pcap'

注意 -04:00 恰好是我的时区与 UTC 的当前偏移量。如果您不与不同时区的同事共享 pcap 文件,则可以省略偏移量,但它可能很有用,因此您可能仍想保留它。您永远不知道将来何时可能希望与跨时区的同事共享 pcap,如果他们打开您的 pcap 文件,他们将获得所需的信息,以便通过 Wireshark 的 Edit -> 轻松时移数据包时间戳Time Shift ... 功能,因此数据包时间戳与捕获文件的时区相关,而不是它们自己的时区。这样,每个人都可以参考相同的时间,而不管他们自己的时区如何,并且可以避免混淆。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多