每次手动运行tcpdump
,我都要用Ctrl + C来停止它。 现在我想用cronjob来安排我的tcpdump
,我只需要运行1个半小时。 没有手动运行Ctrl + C或kill命令,它怎么能自动停止? 这是我正在testing的命令:
tcpdump -i eth0 'port 8080' -w myfile
我可以安排另一个cronjob杀死tcpdump
进程,但这似乎不是一个好主意。
你可以结合-G {sec}
(每隔x秒旋转转储文件)和-W {count}
(限制转储文件的数量)来得到你想要的:
tcpdump -G 15 -W 1 -w myfile -i eth0 'port 8080'
会运行15秒,然后停止。 打开1.5小时到几秒钟,它应该工作。
你可以使用超时
timeout 5400 tcpdump -i eth0 'port 8080' -w myfile
你可以这样做:
tcpdump -i eth0 'port 8080' -w myfile & pid=$! sleep 1.5h kill $pid
这个方法在Ubuntu 14.04上最适合我
sudo -i crontab -e
然后添加该行
30 17 * * * /usr/sbin/tcpdump -G 12600 -W 1 -s 3000 -w /home/ubuntu/capture-file.pcap port 5060 or portrange 10000-35000
笔记