我是linux的新用户,现在我有一个特定时间捕获数据包的任务。
例如,我想捕获数据包然后将其保存到pcap文件(每个文件限制50mb)。我可以使用这个命令:
tcpdump -C 50 -w mypackets.pcap
但我不知道如何在特定的时间段内运行它。例如,每周一到周五(并且期间是2019/02 / 01~2019 / 02/28)运行此项。在2019/02/28之后,此过程将被终止。
我已阅读the doc,但似乎没有参数来控制此选项
这样做有什么好主意吗?
如果您希望安排进程运行的时间,那么您可能需要查看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
或者,如果您只想捕获一整个月,例如March,那么您可以使用类似的东西:
$ 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
允许您指定在指定的秒数后使用-a duration:value选项停止捕获,因此您不一定需要明确地停止它,因为在经过这段时间后,它将自行终止。