[tcpdump] timeout和tcpdump连用实现定时抓包

使用组合命令

  • 长期循环抓包,每1800秒自动切割保存一个带时间戳的pcap文件,不中断抓包。
watch -n 1800  'timeout 1800 tcpdump -i lo port 20001 -G 1800 -w capture_$(date +%Y%m%d%H%M%S).pcap'

备注:

  • 为什么使用了-G还要使用timeout?
    发现-G在到达时候后并没有直接退出,timeout会直接退出

使用-G参数

  • 使用-G参数能直接轮转
mkdir tmp
chown tcpdump:tcpdump tmp
tcpdump -i lo port 20001 -G 1800 -w tmp/capture_%Y%m%d%H%M%S.pcap
  • 为什么不一开始就使用G参数?
    因为tcpdump在文件轮转的时候默认的用户是tcpdump而不是当前用户(如root),可能会出现无法写入当前文件夹的问题,因此需要提前创建一个文件夹并且指定用户才可以轮转。
    按理说-Z root 能指定tcpdump的用户为root,但是Ubuntu默认的tcpdump版本会直接coredump,需要升级。
posted on 2025-03-27 11:50  风惊庭前叶  阅读(112)  评论(0)    收藏  举报