每次,当我手动运行tcpdump
时,都必须使用Ctrl + C停止它。现在,我想使用cronjob安排我的tcpdump
,而我只需要它运行1个半小时即可。如果不手动运行Ctrl + C或kill命令,如何自动将其停止?这是我正在测试的命令:
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
注意