在计划中使用tcpdump的最佳方法

时间:2019-02-27 07:02:00

标签: ubuntu cron tcpdump

我是linux的新用户,现在我的任务是在特定时间捕获数据包。

例如,我要捕获数据包,然后将其保存到pcap文件(每个文件限制为50mb)。我可以使用以下命令:

tcpdump -C 50 -w mypackets.pcap

但是我不知道如何在特定时间段内运行它。 例如,在每个星期一至星期五运行此程序(周期为2019/02/01〜2019/02/28) 在2019/02/28之后,此过程将被终止。

我已阅读the doc,但似乎没有参数可以控制此选项

有什么好主意吗?

1 个答案:

答案 0 :(得分:1)

如果您希望安排进程运行的时间,那么您可能需要调查crontab

例如,以下cron作业将导致tcpdump在每个星期一开始,并在每个星期五终止:

$ crontab -e
o
0    0    *    *    mon   tcpdump -C 50 -w mypackets.pcap
0    0    *    *    sat   killall -s SIGINT tcpdump
ESC:wq
crontab: installing new crontab

或者,如果您只想捕获整个月(例如3月),则可以改用这样的方法:

$ crontab -e
o
0    0    1    mar  *   tcpdump -C 50 -w mypackets.pcap
0    0    1    apr  *   killall -s SIGINT tcpdump
ESC:wq
crontab: installing new crontab

不再需要cron作业时,您将需要手动删除它们。一定要在实际运行cron作业之前对其进行测试,以便您知道它们在真正需要它们时会按预期工作。

您可能还想研究使用dumpcap而不是tcpdump,因为dumpcap允许您指定使用-在指定的秒数后停止捕获。一个duration:value 选项,因此您不必显式停止它,因为它会在经过这段时间后终止。