我将在20:00
到23: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
答案 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