每次,当我手动运行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小时变成几秒钟,它应该能工作.

Linux相关问答推荐

BASH-SCRIPT-在特定行合并两个文件

为什么我们不能使用${$#}来获取传递给shell 脚本的最后一个参数?

如何使 awk 输出更具可读性?

inotifywait 可以说文件在另一个进程可以访问之前已关闭吗?

使用 bash 命令将文件从子文件夹复制到另一个

如何使用 ftrace 过滤查看函数上方的调用堆栈?

如何在 DolphinDB 中递归查找目录中的所有文件?

如何使用正则表达式在 LINux 中查找具有不同结尾的多个文件?

我需要制作一个 awk 脚本来解析文件中的文本.我不确定我是否做得正确

Linux上Kvaser数据库编辑器的等效工具

如何彻底剥离可执行文件

如何使用不同的出口 IP 一次运行多个 Tor 进程?

如何排除 tar 的绝对路径?

在 cron 作业(job)中执行 PHP 脚本

比较两个图像的 python/linux 方式

如何在 linux 或 unix 上找到用户的主目录?

Bash:在文件中的特定位置插入一行

区分 Java 线程和 OS 线程?

如何在我的终端中编辑文本文件

Ionic android 构建错误 - 找不到ANDROID_HOME环境变量