crontab作业的结束时间

时间:2012-07-16 07:05:06

标签: linux unix solaris

我将在20:0023:00期间每5分钟运行一次snoop命令,但我不知道如何在最后5分钟内杀死(22:55直到{{1} })。在这方面你能帮我吗?

snoop命令:

23:00

crontab的:

FILE=vitrin_`date +%Y%m%d%H%M`.cap
kill -9 `pgrep snoop`
snoop -x0 -d e1000g0 -o /export/home/vitrin/$FILE

2 个答案:

答案 0 :(得分:3)

您可以在timeout from coreutils之类的工具的监督下,从一开始就运行它,而不是从下一个cron运行中杀死您的snoop(以及可能还有一些其他无关的)。至少在linux下你几乎肯定已经拥有它,除非你的coreutils已经很老了。

timeout 5m snoop ...
status=$?
[ $status -eq 124 ] && exit 0
exit $status

如果您真的需要SIGKILL timeout,请选择--signal

如果运行命令被超时终止,则退出状态设置为124.在您的情况下,您似乎要忽略它,例如。就像上面的例子一样。

答案 1 :(得分:1)

这样的事情可能有所帮助:

kill -9 $(pgrep snoop) && \
  test $(date '+%s') -lt $(date -d "23:00" '+%s') && \
  snoop -x0 -d e1000g0 -o /export/home/vitrin/$FILE

或者在crontab中这样:

*/5 20-23 * * * /export/home/snoop.sh