每次,当我手动运行时tcpdump,我必须使用Ctrl+ C来停止它.现在我想安排我tcpdump的cronjob,我只需要它运行1个半小时.无需手动运行Ctrl+ C或kill命令,如何自动停止?这是我正在测试的命令:
tcpdump -i eth0 'port 8080' -w myfile
Run Code Online (Sandbox Code Playgroud)
我可以安排另一个cronjob来杀死这个tcpdump过程,但这似乎不是一个好主意.
Pau*_*bel 49
您可以组合-G {sec}(每x秒旋转一次转储文件)和-W {count}(限制转储文件数)以获得您想要的内容:
tcpdump -G 15 -W 1 -w myfile -i eth0 'port 8080'
Run Code Online (Sandbox Code Playgroud)
将运行15秒然后停止.转1.5小时到秒,它应该工作.
小智 36
你可以使用超时
timeout 5400 tcpdump -i eth0 'port 8080' -w myfile
Run Code Online (Sandbox Code Playgroud)
kiw*_*san 17
你可以这样做:
tcpdump -i eth0 'port 8080' -w myfile &
pid=$!
sleep 1.5h
kill $pid
Run Code Online (Sandbox Code Playgroud)
在 Ubuntu 14.04 上最适合我的方法
sudo -i
crontab -e
Run Code Online (Sandbox Code Playgroud)
然后添加行
30 17 * * * /usr/sbin/tcpdump -G 12600 -W 1 -s 3000 -w /home/ubuntu/capture-file.pcap port 5060 or portrange 10000-35000
Run Code Online (Sandbox Code Playgroud)
笔记